[ios] Added Go button.

This commit is contained in:
v.mikhaylenko 2015-07-21 15:53:49 +03:00 committed by Alex Zolotarev
parent 496ed98c62
commit 2040993227
14 changed files with 244 additions and 236 deletions

View file

@ -10,10 +10,15 @@
@interface MWMNavigationDashboard : SolidTouchView
@property (nonatomic) CGFloat topOffset;
@property (weak, nonatomic) IBOutlet UIImageView * direction;
@property (weak, nonatomic) IBOutlet UILabel * distanceToNextAction;
@property (weak, nonatomic) IBOutlet UILabel * distanceToNextActionUnits;
@property (weak, nonatomic) IBOutlet UILabel * distanceLeft;
@property (weak, nonatomic) IBOutlet UILabel * eta;
- (void)addToView:(UIView *)superview;
- (void)remove;
@end

View file

@ -14,9 +14,47 @@
@implementation MWMNavigationDashboard
- (void)addToView:(UIView *)superview
{
[superview addSubview:self];
self.frame = self.defaultFrame;
[self setInitialPosition];
[self moveIn];
}
- (void)remove
{
[UIView animateWithDuration:0.2 animations:^
{
[self setInitialPosition];
}
completion:^(BOOL finished)
{
[self removeFromSuperview];
}];
}
- (void)setInitialPosition
{
self.maxY = 0.0;
}
- (void)moveIn
{
[UIView animateWithDuration:0.2 animations:^{ self.origin = CGPointZero; }];
}
- (void)layoutSubviews
{
self.frame = CGRectMake(0.0, 0.0, self.superview.width, 92.0);
self.frame = self.defaultFrame;
[super layoutSubviews];
}
#pragma mark - Properties
- (CGRect)defaultFrame
{
return CGRectMake(0.0, self.topOffset, self.superview.width, 92.0);
}
@end

View file

@ -1,13 +0,0 @@
//
// MWMNavigationGo.h
// Maps
//
// Created by Ilya Grechuhin on 21.07.15.
// Copyright (c) 2015 MapsWithMe. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MWMNavigationGo : UIButton
@end

View file

@ -1,19 +0,0 @@
//
// MWMNavigationGo.m
// Maps
//
// Created by Ilya Grechuhin on 21.07.15.
// Copyright (c) 2015 MapsWithMe. All rights reserved.
//
#import "MWMNavigationGo.h"
#import "UIKitCategories.h"
@implementation MWMNavigationGo
- (void)layoutSubviews
{
self.frame = CGRectMake(0.0, 76.0, self.superview.width, 44.0);
}
@end

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMNavigationDashboardManager">
<connections>
<outlet property="navigatonGo" destination="Knb-Gu-RZr" id="fmQ-4W-KMG"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Knb-Gu-RZr" customClass="MWMNavigationGo">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<state key="normal" title="Start">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="navigationGoPressed:" destination="-1" eventType="touchUpInside" id="AHv-v2-j2x"/>
</connections>
<point key="canvasLocation" x="208" y="364"/>
</button>
</objects>
</document>

View file

@ -15,7 +15,8 @@ typedef NS_ENUM(NSUInteger, MWMNavigationRouteType)
typedef NS_ENUM(NSUInteger, MWMNavigationDashboardState)
{
MWMNavigationDashboardStateHidden,
MWMNavigationDashboardStatePlanning
MWMNavigationDashboardStatePlanning,
MWMNavigationDashboardStateNavigation
};
@protocol MWMNavigationDashboardManagerDelegate <NSObject>

View file

@ -7,18 +7,14 @@
//
#import "Macros.h"
#import "MWMiPadLandscapeRoutePreview.h"
#import "MWMNavigationDashboard.h"
#import "MWMNavigationDashboardManager.h"
#import "MWMNavigationGo.h"
#import "MWMRoutePreview.h"
@interface MWMNavigationDashboardManager ()
@property (nonatomic) IBOutlet MWMRoutePreview * routePreview;
@property (nonatomic) IBOutlet MWMiPadLandscapeRoutePreview * iPadLandscapeRoutePreview;
@property (nonatomic) IBOutlet MWMNavigationDashboard * navigationDashboard;
@property (nonatomic) IBOutlet MWMNavigationGo * navigatonGo;
@property (weak, nonatomic) UIView * ownerView;
@property (weak, nonatomic) id<MWMNavigationDashboardManagerDelegate> delegate;
@ -54,8 +50,22 @@
#pragma mark - MWMNavigationGo
- (IBAction)navigationGoPressed:(MWMNavigationGo *)sender
- (IBAction)navigationGoPressed:(UIButton *)sender
{
self.state = MWMNavigationDashboardStateNavigation;
}
#pragma mark - State changes
- (void)showStatePlanning
{
[self.routePreview addToView:self.ownerView];
}
- (void)showStateNavigation
{
[self.routePreview remove];
[self.navigationDashboard addToView:self.ownerView];
}
#pragma mark - Properties
@ -67,13 +77,6 @@
return _routePreview;
}
- (MWMiPadLandscapeRoutePreview *)iPadLandscapeRoutePreview
{
if (!_iPadLandscapeRoutePreview)
[NSBundle.mainBundle loadNibNamed:MWMiPadLandscapeRoutePreview.className owner:self options:nil];
return _iPadLandscapeRoutePreview;
}
- (MWMNavigationDashboard *)navigationDashboard
{
if (!_navigationDashboard)
@ -81,26 +84,24 @@
return _navigationDashboard;
}
- (MWMNavigationGo *)navigatonGo
{
if (!_navigatonGo)
[NSBundle.mainBundle loadNibNamed:MWMNavigationGo.className owner:self options:nil];
return _navigatonGo;
}
- (void)setState:(MWMNavigationDashboardState)state
{
if (_state == state)
return;
_state = state;
switch (state)
{
case MWMNavigationDashboardStateHidden:
break;
case MWMNavigationDashboardStatePlanning:
[self.ownerView addSubview:self.routePreview];
NSAssert(_state == MWMNavigationDashboardStateHidden, @"Invalid state change");
[self showStatePlanning];
break;
case MWMNavigationDashboardStateNavigation:
NSAssert(_state == MWMNavigationDashboardStatePlanning, @"Invalid state change");
[self showStateNavigation];
break;
}
_state = state;
}
@end

View file

@ -10,8 +10,15 @@
@interface MWMRoutePreview : SolidTouchView
@property (nonatomic) CGFloat topOffset;
@property (nonatomic) BOOL showGoButton;
@property (weak, nonatomic) IBOutlet UILabel * status;
@property (weak, nonatomic) IBOutlet UIButton * pedestrian;
@property (weak, nonatomic) IBOutlet UIButton * vehicle;
- (void)addToView:(UIView *)superview;
- (void)remove;
@end

View file

@ -7,12 +7,48 @@
//
#import "MWMRoutePreview.h"
#import "UIKitCategories.h"
@interface MWMRoutePreview ()
@property (nonatomic) CGFloat goButtonHiddenOffset;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * goButtonVerticalOffset;
@property (nonatomic) BOOL shown;
@end
@implementation MWMRoutePreview
- (void)awakeFromNib
{
self.goButtonHiddenOffset = self.goButtonVerticalOffset.constant;
}
- (void)addToView:(UIView *)superview
{
self.frame = self.defaultFrame;
[superview addSubview:self];
self.shown = YES;
}
- (void)remove
{
self.shown = NO;
}
- (void)layoutSubviews
{
self.frame = CGRectMake(0.0, 0.0, self.superview.width, 76.0);
[UIView animateWithDuration:0.2 animations:^
{
self.frame = self.defaultFrame;
}
completion:^(BOOL finished)
{
if (!self.shown)
[self removeFromSuperview];
}];
[super layoutSubviews];
}
- (IBAction)routeTypePressed:(UIButton *)sender
@ -21,4 +57,31 @@
sender.selected = YES;
}
#pragma mark - Properties
- (CGRect)defaultFrame
{
return CGRectMake(0.0, self.topOffset - (self.shown ? 0.0 : self.height), self.superview.width, self.height);
}
- (void)setTopOffset:(CGFloat)topOffset
{
_topOffset = topOffset;
[self layoutSubviews];
}
- (void)setShowGoButton:(BOOL)showGoButton
{
_showGoButton = showGoButton;
[self layoutIfNeeded];
self.goButtonVerticalOffset.constant = showGoButton ? 0.0 : self.goButtonHiddenOffset;
[UIView animateWithDuration:0.2 animations:^{ [self layoutIfNeeded]; }];
}
- (void)setShown:(BOOL)shown
{
_shown = shown;
[self layoutSubviews];
}
@end

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
@ -7,90 +7,128 @@
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMNavigationDashboardManager">
<connections>
<outlet property="routePreview" destination="iN0-l3-epB" id="U2X-Ca-X7E"/>
<outlet property="routePreview" destination="7PP-4j-9rc" id="WJG-eH-84f"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MWMRoutePreview">
<rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<view contentMode="scaleToFill" id="7PP-4j-9rc" customClass="MWMRoutePreview">
<rect key="frame" x="0.0" y="0.0" width="320" height="120"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2wx-8y-Qwi" userLabel="Spiner Button">
<rect key="frame" x="0.0" y="28" width="40" height="40"/>
<button contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xXd-rh-qax">
<rect key="frame" x="0.0" y="32" width="320" height="44"/>
<color key="backgroundColor" red="0.12549019610000001" green="0.58823529409999997" blue="0.95294117649999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="cX4-KM-WjM"/>
<constraint firstAttribute="width" constant="40" id="pMI-f9-B7O"/>
<constraint firstAttribute="height" constant="44" id="7Yl-tL-nbW"/>
</constraints>
<state key="normal" image="ic_spinner_close_1">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="14"/>
<state key="normal" title="Start">
<color key="titleColor" red="1" green="1" blue="1" alpha="0.87" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius">
<integer key="value" value="2"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="layer.shadowUIColor">
<color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.23999999999999999" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<action selector="navigationGoPressed:" destination="-1" eventType="touchUpInside" id="Ebg-dA-ESS"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Creating Route..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kPQ-m5-bML">
<rect key="frame" x="56" y="37" width="172" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="5FM-Rn-FPv"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.26000000000000001" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3uR-wV-4UJ" userLabel="Buttons Box">
<rect key="frame" x="232" y="28" width="80" height="40"/>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VCP-zR-7y1">
<rect key="frame" x="0.0" y="0.0" width="320" height="76"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BhZ-YH-NR4" userLabel="Walk Button">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<state key="normal" image="ic_walk_on">
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pLa-SD-fX0" userLabel="Spiner Button">
<rect key="frame" x="0.0" y="28" width="40" height="40"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="UTQ-Tq-mZt"/>
<constraint firstAttribute="height" constant="40" id="na4-nc-sSE"/>
</constraints>
<state key="normal" image="ic_spinner_close_1">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="routePreviewChange:" destination="-1" eventType="touchUpInside" id="2Yh-CE-Sq2"/>
<action selector="routeTypePressed:" destination="iN0-l3-epB" eventType="touchUpInside" id="w9W-9i-JXg"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KDI-3e-888" userLabel="Drive Button">
<rect key="frame" x="40" y="0.0" width="40" height="40"/>
<state key="normal" image="ic_drive_on">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="routePreviewChange:" destination="-1" eventType="touchUpInside" id="9Pu-OX-NOL"/>
<action selector="routeTypePressed:" destination="iN0-l3-epB" eventType="touchUpInside" id="1tR-7d-1af"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Creating Route..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Thj-oD-UU9">
<rect key="frame" x="56" y="37" width="172" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="mTp-qM-1co"/>
</constraints>
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.26000000000000001" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Hes-8E-Hej" userLabel="Buttons Box">
<rect key="frame" x="232" y="28" width="80" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8Sk-cP-cgY" userLabel="Walk Button">
<rect key="frame" x="0.0" y="0.0" width="40" height="40"/>
<state key="normal" image="ic_walk_on">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="routePreviewChange:" destination="-1" eventType="touchUpInside" id="iPP-Pp-hjn"/>
<action selector="routeTypePressed:" destination="7PP-4j-9rc" eventType="touchUpInside" id="dAX-hb-quQ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="G9x-0i-TqT" userLabel="Drive Button">
<rect key="frame" x="40" y="0.0" width="40" height="40"/>
<state key="normal" image="ic_drive_on">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="routePreviewChange:" destination="-1" eventType="touchUpInside" id="Qpx-Pe-eoP"/>
<action selector="routeTypePressed:" destination="7PP-4j-9rc" eventType="touchUpInside" id="aiA-MM-UiF"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="8Sk-cP-cgY" secondAttribute="bottom" id="0lo-xG-iRR"/>
<constraint firstItem="G9x-0i-TqT" firstAttribute="leading" secondItem="8Sk-cP-cgY" secondAttribute="trailing" id="4t0-d5-dJR"/>
<constraint firstItem="G9x-0i-TqT" firstAttribute="leading" secondItem="8Sk-cP-cgY" secondAttribute="trailing" id="BPb-wo-AEk"/>
<constraint firstItem="8Sk-cP-cgY" firstAttribute="leading" secondItem="Hes-8E-Hej" secondAttribute="leading" id="Ik0-NV-qLW"/>
<constraint firstItem="G9x-0i-TqT" firstAttribute="top" secondItem="Hes-8E-Hej" secondAttribute="top" id="Lox-sW-PWO"/>
<constraint firstItem="8Sk-cP-cgY" firstAttribute="top" secondItem="Hes-8E-Hej" secondAttribute="top" id="RbQ-5z-Z3a"/>
<constraint firstAttribute="trailing" secondItem="G9x-0i-TqT" secondAttribute="trailing" id="dAO-rM-fsn"/>
<constraint firstAttribute="height" constant="40" id="kJA-Jf-Udj"/>
<constraint firstAttribute="bottom" secondItem="G9x-0i-TqT" secondAttribute="bottom" id="nUH-dv-UzA"/>
<constraint firstAttribute="width" constant="80" id="ode-jY-7yp"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="BhZ-YH-NR4" firstAttribute="leading" secondItem="3uR-wV-4UJ" secondAttribute="leading" id="0Ma-zn-aai"/>
<constraint firstAttribute="height" constant="40" id="3bx-UF-sry"/>
<constraint firstItem="BhZ-YH-NR4" firstAttribute="top" secondItem="3uR-wV-4UJ" secondAttribute="top" id="6J7-Mh-sYa"/>
<constraint firstAttribute="trailing" secondItem="KDI-3e-888" secondAttribute="trailing" id="8VV-M6-ioP"/>
<constraint firstItem="KDI-3e-888" firstAttribute="top" secondItem="3uR-wV-4UJ" secondAttribute="top" id="EPh-s2-dFI"/>
<constraint firstItem="KDI-3e-888" firstAttribute="leading" secondItem="BhZ-YH-NR4" secondAttribute="trailing" id="KRF-1B-jZk"/>
<constraint firstAttribute="bottom" secondItem="KDI-3e-888" secondAttribute="bottom" id="NhE-2F-XFI"/>
<constraint firstAttribute="width" constant="80" id="aSk-uF-R49"/>
<constraint firstItem="KDI-3e-888" firstAttribute="leading" secondItem="BhZ-YH-NR4" secondAttribute="trailing" id="hr8-4W-2d5"/>
<constraint firstAttribute="bottom" secondItem="BhZ-YH-NR4" secondAttribute="bottom" id="ncf-gl-Eze"/>
<constraint firstItem="Thj-oD-UU9" firstAttribute="leading" secondItem="pLa-SD-fX0" secondAttribute="trailing" constant="16" id="11W-YY-QYj"/>
<constraint firstItem="Hes-8E-Hej" firstAttribute="leading" secondItem="Thj-oD-UU9" secondAttribute="trailing" constant="4" id="34F-wY-619"/>
<constraint firstAttribute="trailing" secondItem="Hes-8E-Hej" secondAttribute="trailing" constant="8" id="3yG-6V-LuZ"/>
<constraint firstAttribute="bottom" secondItem="Hes-8E-Hej" secondAttribute="bottom" constant="8" id="LcS-BS-uRm"/>
<constraint firstAttribute="bottom" secondItem="pLa-SD-fX0" secondAttribute="bottom" constant="8" id="LoZ-RU-Qdh"/>
<constraint firstItem="pLa-SD-fX0" firstAttribute="leading" secondItem="VCP-zR-7y1" secondAttribute="leading" id="c8e-GO-Mgn"/>
<constraint firstAttribute="height" constant="76" id="dG5-C7-LZv"/>
<constraint firstAttribute="bottom" secondItem="Thj-oD-UU9" secondAttribute="bottom" constant="18" id="jVf-VX-JdX"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="2wx-8y-Qwi" secondAttribute="bottom" constant="8" id="6D2-hs-7xI"/>
<constraint firstAttribute="bottom" secondItem="kPQ-m5-bML" secondAttribute="bottom" constant="18" id="6X0-A2-DCC"/>
<constraint firstItem="2wx-8y-Qwi" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="L0h-Nw-gVO"/>
<constraint firstItem="3uR-wV-4UJ" firstAttribute="leading" secondItem="kPQ-m5-bML" secondAttribute="trailing" constant="4" id="NP7-In-6zm"/>
<constraint firstItem="kPQ-m5-bML" firstAttribute="leading" secondItem="2wx-8y-Qwi" secondAttribute="trailing" constant="16" id="aii-g6-6CQ"/>
<constraint firstAttribute="trailing" secondItem="3uR-wV-4UJ" secondAttribute="trailing" constant="8" id="bFE-ve-p5s"/>
<constraint firstAttribute="bottom" secondItem="3uR-wV-4UJ" secondAttribute="bottom" constant="8" id="dsg-bz-QrU"/>
<constraint firstAttribute="trailing" secondItem="VCP-zR-7y1" secondAttribute="trailing" id="44s-L7-d3t"/>
<constraint firstItem="xXd-rh-qax" firstAttribute="leading" secondItem="7PP-4j-9rc" secondAttribute="leading" id="Cj5-Qq-QWX"/>
<constraint firstItem="VCP-zR-7y1" firstAttribute="top" secondItem="7PP-4j-9rc" secondAttribute="top" id="G8m-5O-PeA"/>
<constraint firstItem="VCP-zR-7y1" firstAttribute="leading" secondItem="7PP-4j-9rc" secondAttribute="leading" id="IFc-cn-WDs"/>
<constraint firstAttribute="trailing" secondItem="xXd-rh-qax" secondAttribute="trailing" id="Sct-Ci-Uz5"/>
<constraint firstAttribute="bottom" secondItem="xXd-rh-qax" secondAttribute="bottom" constant="44" id="oL8-Fe-U5W"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<connections>
<outlet property="pedestrian" destination="BhZ-YH-NR4" id="tPi-D3-IUF"/>
<outlet property="status" destination="kPQ-m5-bML" id="O4H-Ld-GZg"/>
<outlet property="vehicle" destination="KDI-3e-888" id="bTw-F4-5xc"/>
<outlet property="goButtonVerticalOffset" destination="oL8-Fe-U5W" id="aPg-oO-QqN"/>
<outlet property="pedestrian" destination="8Sk-cP-cgY" id="RUj-Uz-qeD"/>
<outlet property="status" destination="Thj-oD-UU9" id="N8N-lB-jaJ"/>
<outlet property="vehicle" destination="G9x-0i-TqT" id="u9a-2E-LQ5"/>
</connections>
<point key="canvasLocation" x="330" y="261"/>
<point key="canvasLocation" x="369" y="452"/>
</view>
</objects>
<resources>
@ -98,9 +136,4 @@
<image name="ic_spinner_close_1" width="40" height="40"/>
<image name="ic_walk_on" width="40" height="40"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
</document>

View file

@ -1,13 +0,0 @@
//
// MWMiPadLandscapeRoutePreview.h
// Maps
//
// Created by Ilya Grechuhin on 21.07.15.
// Copyright (c) 2015 MapsWithMe. All rights reserved.
//
#import "MWMRoutePreview.h"
@interface MWMiPadLandscapeRoutePreview : MWMRoutePreview
@end

View file

@ -1,18 +0,0 @@
//
// MWMiPadLandscapeRoutePreview.m
// Maps
//
// Created by Ilya Grechuhin on 21.07.15.
// Copyright (c) 2015 MapsWithMe. All rights reserved.
//
#import "MWMiPadLandscapeRoutePreview.h"
@implementation MWMiPadLandscapeRoutePreview
- (void)layoutSubviews
{
self.frame = CGRectMake(0.0, 0.0, 320.0, self.superview.height);
}
@end

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMNavigationDashboardManager">
<connections>
<outlet property="iPadLandscapeRoutePreview" destination="wjj-g5-4OL" id="ypQ-O9-R2M"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="wjj-g5-4OL" customClass="MWMiPadLandscapeRoutePreview">
<rect key="frame" x="0.0" y="0.0" width="320" height="768"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="314" y="391"/>
</view>
</objects>
</document>

View file

@ -29,18 +29,14 @@
34570A3D1B13223000E6D4FD /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A3C1B13223000E6D4FD /* libsqlite3.dylib */; settings = {ATTRIBUTES = (Required, ); }; };
34570A3F1B13225500E6D4FD /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A3E1B13225500E6D4FD /* Accounts.framework */; settings = {ATTRIBUTES = (Required, ); }; };
34570A411B13229300E6D4FD /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 34570A401B13229300E6D4FD /* FBSDKLoginKit.framework */; settings = {ATTRIBUTES = (Required, ); }; };
3457D20F1B5E2DD000428798 /* MWMRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3457D20B1B5E2DD000428798 /* MWMRoutePreview.xib */; };
3457D2101B5E2DD000428798 /* MWMRoutePreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 3457D20D1B5E2DD000428798 /* MWMRoutePreview.m */; };
3457D2151B5E2DF600428798 /* MWMNavigationDashboard.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3457D2131B5E2DF600428798 /* MWMNavigationDashboard.mm */; };
3457D2161B5E2DF600428798 /* MWMNavigationDashboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3457D2141B5E2DF600428798 /* MWMNavigationDashboard.xib */; };
3457D21B1B5E2E1400428798 /* MWMNavigationGo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3457D2191B5E2E1400428798 /* MWMNavigationGo.m */; };
3457D21C1B5E2E1400428798 /* MWMNavigationGo.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3457D21A1B5E2E1400428798 /* MWMNavigationGo.xib */; };
3457D2231B5E4A2A00428798 /* MWMiPadLandscapeRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3457D2221B5E4A2A00428798 /* MWMiPadLandscapeRoutePreview.xib */; };
3457D2261B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 3457D2251B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.m */; };
345C31711AE798DD00EA0CC2 /* MWMCategoriesInterfaceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 345C316E1AE798DD00EA0CC2 /* MWMCategoriesInterfaceCell.m */; };
345C31721AE798DD00EA0CC2 /* MWMCategoriesInterfaceController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345C31701AE798DD00EA0CC2 /* MWMCategoriesInterfaceController.mm */; };
345C31781AE799B600EA0CC2 /* MWMSearchResultCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 345C31751AE799B600EA0CC2 /* MWMSearchResultCell.m */; };
345C31791AE799B600EA0CC2 /* MWMSearchResultController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 345C31771AE799B600EA0CC2 /* MWMSearchResultController.mm */; };
346564D11B5E8468001C7C42 /* MWMRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 346564D01B5E8468001C7C42 /* MWMRoutePreview.xib */; };
347274731B0F4EE000756B37 /* me.maps.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 347274721B0F4EE000756B37 /* me.maps.entitlements */; };
347274771B0F4F3900756B37 /* me.maps.watchkitextension.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 347274761B0F4F3900756B37 /* me.maps.watchkitextension.entitlements */; };
347274791B0F4FD900756B37 /* me.maps.watchkitextension.production.entitlements in Resources */ = {isa = PBXBuildFile; fileRef = 347274781B0F4FD900756B37 /* me.maps.watchkitextension.production.entitlements */; };
@ -387,18 +383,11 @@
34570A3C1B13223000E6D4FD /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
34570A3E1B13225500E6D4FD /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; };
34570A401B13229300E6D4FD /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FBSDKLoginKit.framework; path = Statistics/FBSDKLoginKit.framework; sourceTree = "<group>"; };
3457D20B1B5E2DD000428798 /* MWMRoutePreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePreview.xib; sourceTree = "<group>"; };
3457D20C1B5E2DD000428798 /* MWMRoutePreview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRoutePreview.h; sourceTree = "<group>"; };
3457D20D1B5E2DD000428798 /* MWMRoutePreview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMRoutePreview.m; sourceTree = "<group>"; };
3457D2121B5E2DF600428798 /* MWMNavigationDashboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNavigationDashboard.h; sourceTree = "<group>"; };
3457D2131B5E2DF600428798 /* MWMNavigationDashboard.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNavigationDashboard.mm; sourceTree = "<group>"; };
3457D2141B5E2DF600428798 /* MWMNavigationDashboard.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNavigationDashboard.xib; sourceTree = "<group>"; };
3457D2181B5E2E1400428798 /* MWMNavigationGo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNavigationGo.h; sourceTree = "<group>"; };
3457D2191B5E2E1400428798 /* MWMNavigationGo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMNavigationGo.m; sourceTree = "<group>"; };
3457D21A1B5E2E1400428798 /* MWMNavigationGo.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNavigationGo.xib; sourceTree = "<group>"; };
3457D2221B5E4A2A00428798 /* MWMiPadLandscapeRoutePreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMiPadLandscapeRoutePreview.xib; sourceTree = "<group>"; };
3457D2241B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMiPadLandscapeRoutePreview.h; sourceTree = "<group>"; };
3457D2251B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMiPadLandscapeRoutePreview.m; sourceTree = "<group>"; };
345C31681AE7860600EA0CC2 /* MWMWatchLocationTrackerDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMWatchLocationTrackerDelegate.h; sourceTree = "<group>"; };
345C316D1AE798DD00EA0CC2 /* MWMCategoriesInterfaceCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMCategoriesInterfaceCell.h; sourceTree = "<group>"; };
345C316E1AE798DD00EA0CC2 /* MWMCategoriesInterfaceCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMCategoriesInterfaceCell.m; sourceTree = "<group>"; };
@ -408,6 +397,7 @@
345C31751AE799B600EA0CC2 /* MWMSearchResultCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMSearchResultCell.m; sourceTree = "<group>"; };
345C31761AE799B600EA0CC2 /* MWMSearchResultController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSearchResultController.h; sourceTree = "<group>"; };
345C31771AE799B600EA0CC2 /* MWMSearchResultController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSearchResultController.mm; sourceTree = "<group>"; };
346564D01B5E8468001C7C42 /* MWMRoutePreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePreview.xib; sourceTree = "<group>"; };
347274721B0F4EE000756B37 /* me.maps.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = me.maps.entitlements; sourceTree = "<group>"; };
347274761B0F4F3900756B37 /* me.maps.watchkitextension.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = me.maps.watchkitextension.entitlements; sourceTree = "<group>"; };
347274781B0F4FD900756B37 /* me.maps.watchkitextension.production.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = me.maps.watchkitextension.production.entitlements; sourceTree = "<group>"; };
@ -1054,10 +1044,7 @@
children = (
3457D20C1B5E2DD000428798 /* MWMRoutePreview.h */,
3457D20D1B5E2DD000428798 /* MWMRoutePreview.m */,
3457D20B1B5E2DD000428798 /* MWMRoutePreview.xib */,
3457D2241B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.h */,
3457D2251B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.m */,
3457D2221B5E4A2A00428798 /* MWMiPadLandscapeRoutePreview.xib */,
346564D01B5E8468001C7C42 /* MWMRoutePreview.xib */,
);
path = RoutePreview;
sourceTree = "<group>";
@ -1065,23 +1052,13 @@
3457D2111B5E2DF600428798 /* Dashboard */ = {
isa = PBXGroup;
children = (
3457D2141B5E2DF600428798 /* MWMNavigationDashboard.xib */,
3457D2121B5E2DF600428798 /* MWMNavigationDashboard.h */,
3457D2131B5E2DF600428798 /* MWMNavigationDashboard.mm */,
3457D2141B5E2DF600428798 /* MWMNavigationDashboard.xib */,
);
path = Dashboard;
sourceTree = "<group>";
};
3457D2171B5E2E1400428798 /* Go */ = {
isa = PBXGroup;
children = (
3457D2181B5E2E1400428798 /* MWMNavigationGo.h */,
3457D2191B5E2E1400428798 /* MWMNavigationGo.m */,
3457D21A1B5E2E1400428798 /* MWMNavigationGo.xib */,
);
path = Go;
sourceTree = "<group>";
};
345C316A1AE7939B00EA0CC2 /* Controllers */ = {
isa = PBXGroup;
children = (
@ -1162,7 +1139,6 @@
3497A9371B5CF8A900F51E55 /* MWMNavigationDashboardManager.mm */,
3457D2081B5E2DD000428798 /* RoutePreview */,
3457D2111B5E2DF600428798 /* Dashboard */,
3457D2171B5E2E1400428798 /* Go */,
);
name = NavigationDashboard;
path = ../NavigationDashboard;
@ -2115,6 +2091,7 @@
F67BC26F1B254B2000FE1D7B /* MWMPlacePageDescriptionView.xib in Resources */,
EE026F0611D6AC0D00645242 /* classificator.txt in Resources */,
FA065FED128614C400FEA989 /* MainWindow-iPad.xib in Resources */,
346564D11B5E8468001C7C42 /* MWMRoutePreview.xib in Resources */,
FA46DA2C12D4166E00968C36 /* countries.txt in Resources */,
EE583CBB12F773F00042CBE3 /* unicode_blocks.txt in Resources */,
EEFE7C1412F8C9E1006AF8C3 /* fonts_blacklist.txt in Resources */,
@ -2130,8 +2107,6 @@
EEA61603134C496A003A9827 /* 03_jomolhari-id-a3d.ttf in Resources */,
EEA61604134C496A003A9827 /* 04_padauk.ttf in Resources */,
EEA61605134C496A003A9827 /* 05_khmeros.ttf in Resources */,
3457D20F1B5E2DD000428798 /* MWMRoutePreview.xib in Resources */,
3457D21C1B5E2E1400428798 /* MWMNavigationGo.xib in Resources */,
347274731B0F4EE000756B37 /* me.maps.entitlements in Resources */,
EE164811135CEE4A003B8A3E /* 06_code2000.ttf in Resources */,
FAAFD697139D9BE2000AE70C /* categories.txt in Resources */,
@ -2183,7 +2158,6 @@
F7E7BA2A1672328F00B4492E /* fuel.png in Resources */,
F7E7BA2B1672328F00B4492E /* fuel@2x.png in Resources */,
4A7D89C61B2EBF3B00AC843E /* resources-mdpi_dark in Resources */,
3457D2231B5E4A2A00428798 /* MWMiPadLandscapeRoutePreview.xib in Resources */,
F6BC1E541ACBF9AB00EF0360 /* MWMFacebookAlert.xib in Resources */,
F7E7BA2C1672328F00B4492E /* hospital.png in Resources */,
F6CB21641AEFC42800FB8963 /* PlacePageActionBar.xib in Resources */,
@ -2351,7 +2325,6 @@
B08AA8DA1A26299A00810B1C /* TimeUtils.m in Sources */,
F6CB216D1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm in Sources */,
F653D4231AE9398700282659 /* MWMPlacePageViewManager.mm in Sources */,
3457D2261B5E4AE100428798 /* MWMiPadLandscapeRoutePreview.m in Sources */,
F65243351B0B634F00BFA9D4 /* MWMPlacePage+Animation.mm in Sources */,
976D86F519CB21BD00C920EF /* RouteView.mm in Sources */,
349A357C1B53D4C9009677EE /* MWMCircularProgressView.m in Sources */,
@ -2372,7 +2345,6 @@
F6588E2F1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.mm in Sources */,
349A358E1B53EABC009677EE /* MWMSearchDownloadMapRequestView.m in Sources */,
A32B6D4D1A14980500E54A65 /* iosOGLContextFactory.mm in Sources */,
3457D21B1B5E2E1400428798 /* MWMNavigationGo.m in Sources */,
FAF457E715597D4600DCCC49 /* Framework.cpp in Sources */,
97CC93BB19599F4700369B42 /* SearchSuggestCell.m in Sources */,
FA054612155C465E001F4E37 /* SelectSetVC.mm in Sources */,