forked from organicmaps/organicmaps
[ios] Fixed PP layout.
This commit is contained in:
parent
997be7b6e8
commit
fad1f704cb
6 changed files with 46 additions and 39 deletions
|
@ -77,7 +77,7 @@ static inline CGPoint const dismissCenter(CGFloat xPosition)
|
|||
|
||||
- (void)dismiss
|
||||
{
|
||||
[UIView animateWithDuration:.3f animations:^
|
||||
[UIView animateWithDuration:.1 animations:^
|
||||
{
|
||||
self.center = dismissCenter(self.center.x);
|
||||
}];
|
||||
|
@ -85,7 +85,7 @@ static inline CGPoint const dismissCenter(CGFloat xPosition)
|
|||
|
||||
- (void)show
|
||||
{
|
||||
[UIView animateWithDuration:.3f animations:^
|
||||
[UIView animateWithDuration:.1 animations:^
|
||||
{
|
||||
self.center = openCenter(self.center.x);
|
||||
}];
|
||||
|
@ -108,7 +108,7 @@ static inline CGPoint const dismissCenter(CGFloat xPosition)
|
|||
- (IBAction)backTap:(id)sender
|
||||
{
|
||||
[self dismiss];
|
||||
[self.placePage.manager dismissPlacePage];
|
||||
[self.placePage.manager refreshPlacePage];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
- (instancetype)initWithViewController:(UIViewController<MWMPlacePageViewDragDelegate> *)viewController;
|
||||
- (void)showPlacePageWithUserMark:(unique_ptr<UserMarkCopy>)userMark;
|
||||
- (void)refreshPlacePage;
|
||||
- (void)dismissPlacePage;
|
||||
- (void)buildRoute;
|
||||
- (void)stopBuildingRoute;
|
||||
|
|
|
@ -101,6 +101,11 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
self.entity.category = [[MapsAppDelegate theApp].m_locationManager formattedSpeedAndAltitude:hasSpeed];
|
||||
}
|
||||
[self.placePage configure];
|
||||
[self refreshPlacePage];
|
||||
}
|
||||
|
||||
- (void)refreshPlacePage
|
||||
{
|
||||
[self.placePage show];
|
||||
[self updateDistance];
|
||||
}
|
||||
|
|
|
@ -98,18 +98,12 @@ typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState)
|
|||
{
|
||||
UIView * ppv = self.extendedPlacePageView;
|
||||
UIView * ppvSuper = ppv.superview;
|
||||
CGPoint const point = [sender translationInView:ppvSuper];
|
||||
CGSize const size = UIScreen.mainScreen.bounds.size;
|
||||
CGFloat const height = MIN(size.width, size.height);
|
||||
CGFloat const offset = MAX(height, kMaximumPlacePageWidth);
|
||||
CGFloat const x = ppv.center.x + point.x;
|
||||
|
||||
if (x > offset / 2.)
|
||||
return;
|
||||
|
||||
ppv.center = CGPointMake(ppv.center.x + point.x, ppv.center.y );
|
||||
ppv.minX += [sender translationInView:ppvSuper].x;
|
||||
ppv.minX = MIN(ppv.minX, 0.0);
|
||||
[sender setTranslation:CGPointZero inView:ppvSuper];
|
||||
if (sender.state == UIGestureRecognizerStateEnded)
|
||||
[self cancelSpringAnimation];
|
||||
UIGestureRecognizerState const state = sender.state;
|
||||
if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled)
|
||||
{
|
||||
self.panVelocity = [sender velocityInView:ppvSuper].x;
|
||||
if (self.panVelocity > 0)
|
||||
|
@ -117,10 +111,6 @@ typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState)
|
|||
else
|
||||
[self.manager dismissPlacePage];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self cancelSpringAnimation];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)willStartEditingBookmarkTitle:(CGFloat)keyboardHeight
|
||||
|
@ -151,8 +141,6 @@ typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState)
|
|||
|
||||
- (void)setTargetPoint:(CGPoint)targetPoint
|
||||
{
|
||||
if (CGPointEqualToPoint(_targetPoint, targetPoint))
|
||||
return;
|
||||
_targetPoint = targetPoint;
|
||||
__weak MWMiPhoneLandscapePlacePage * weakSelf = self;
|
||||
[self startAnimatingPlacePage:self initialVelocity:CGPointMake(self.panVelocity, 0.0) completion:^
|
||||
|
|
|
@ -118,25 +118,22 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState)
|
|||
|
||||
- (void)setState:(MWMiPhonePortraitPlacePageState)state
|
||||
{
|
||||
CGSize const size = UIScreen.mainScreen.bounds.size;
|
||||
CGFloat const width = MIN(size.height, size.width);
|
||||
NSString * anchorImageName;
|
||||
_state = state;
|
||||
[self updateTargetPoint];
|
||||
switch (state)
|
||||
{
|
||||
case MWMiPhonePortraitPlacePageStateClosed:
|
||||
[self.actionBar removeFromSuperview];
|
||||
[self.manager.ownerViewController.view endEditing:YES];
|
||||
break;
|
||||
case MWMiPhonePortraitPlacePageStatePreview:
|
||||
anchorImageName = @"bg_placepage_tablet_normal_";
|
||||
[self.manager.ownerViewController.view endEditing:YES];
|
||||
break;
|
||||
case MWMiPhonePortraitPlacePageStateOpen:
|
||||
case MWMiPhonePortraitPlacePageStateHover:
|
||||
anchorImageName = @"bg_placepage_tablet_open_";
|
||||
break;
|
||||
}
|
||||
self.anchorImageView.image = [UIImage imageNamed:[anchorImageName stringByAppendingString:@((NSUInteger)width).stringValue]];
|
||||
[self setAnchorImage];
|
||||
}
|
||||
|
||||
- (void)updateTargetPoint
|
||||
|
@ -196,9 +193,10 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState)
|
|||
[MWMPlacePageNavigationBar showNavigationBarForPlacePage:self];
|
||||
else
|
||||
[MWMPlacePageNavigationBar dismissNavigationBar];
|
||||
|
||||
[sender setTranslation:CGPointZero inView:ppvSuper];
|
||||
if (sender.state == UIGestureRecognizerStateEnded)
|
||||
[self cancelSpringAnimation];
|
||||
UIGestureRecognizerState const state = sender.state;
|
||||
if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled)
|
||||
{
|
||||
self.panVelocity = [sender velocityInView:ppvSuper].y;
|
||||
CGFloat const estimatedYPosition = [MWMSpringAnimation approxTargetFor:ppv.frame.origin.y velocity:self.panVelocity];
|
||||
|
@ -213,10 +211,6 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState)
|
|||
else
|
||||
[self.manager dismissPlacePage];
|
||||
}
|
||||
else
|
||||
{
|
||||
[self cancelSpringAnimation];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)didTap:(UITapGestureRecognizer *)sender
|
||||
|
@ -227,15 +221,12 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState)
|
|||
case MWMiPhonePortraitPlacePageStateClosed:
|
||||
self.state = MWMiPhonePortraitPlacePageStatePreview;
|
||||
break;
|
||||
|
||||
case MWMiPhonePortraitPlacePageStatePreview:
|
||||
self.state = MWMiPhonePortraitPlacePageStateOpen;
|
||||
break;
|
||||
|
||||
case MWMiPhonePortraitPlacePageStateOpen:
|
||||
case MWMiPhonePortraitPlacePageStateHover:
|
||||
self.state = MWMiPhonePortraitPlacePageStatePreview;
|
||||
[self.manager.ownerViewController.view endEditing:YES];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -252,6 +243,29 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState)
|
|||
[self updateTargetPoint];
|
||||
}
|
||||
|
||||
- (void)setAnchorImage
|
||||
{
|
||||
NSString * anchorImageName = nil;
|
||||
switch (self.state)
|
||||
{
|
||||
case MWMiPhonePortraitPlacePageStateClosed:
|
||||
break;
|
||||
case MWMiPhonePortraitPlacePageStatePreview:
|
||||
anchorImageName = @"bg_placepage_tablet_normal_";
|
||||
break;
|
||||
case MWMiPhonePortraitPlacePageStateOpen:
|
||||
case MWMiPhonePortraitPlacePageStateHover:
|
||||
anchorImageName = @"bg_placepage_tablet_open_";
|
||||
break;
|
||||
}
|
||||
if (anchorImageName)
|
||||
{
|
||||
CGSize const size = UIScreen.mainScreen.bounds.size;
|
||||
CGFloat const width = MIN(size.height, size.width);
|
||||
self.anchorImageView.image = [UIImage imageNamed:[anchorImageName stringByAppendingString:@((NSUInteger)width).stringValue]];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setTargetPoint:(CGPoint)targetPoint
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D131" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMPlacePage">
|
||||
|
@ -17,7 +17,7 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="320" height="498"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bg_placepage_tablet_normal" id="a4c-bA-qa5">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="a4c-bA-qa5">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
|
@ -118,7 +118,6 @@
|
|||
</panGestureRecognizer>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="bg_placepage_tablet_normal" width="320" height="22"/>
|
||||
<image name="img_direction" width="32" height="32"/>
|
||||
</resources>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
|
|
Loading…
Add table
Reference in a new issue