diff --git a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm b/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm index 924a5fee57..343530fe04 100644 --- a/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm +++ b/iphone/Maps/Classes/MWMiPhoneLandscapePlacePage.mm @@ -112,19 +112,15 @@ typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState) { UIView * ppv = self.extendedPlacePageView; UIView * ppvSuper = ppv.superview; - ppv.minX += [sender translationInView:ppvSuper].x; - ppv.minX = MIN(ppv.minX, 0.0); + ppv.midX = MIN(ppv.midX + [sender translationInView:ppvSuper].x, ppv.width / 2.0); [sender setTranslation:CGPointZero inView:ppvSuper]; [self cancelSpringAnimation]; UIGestureRecognizerState const state = sender.state; if (state == UIGestureRecognizerStateEnded || state == UIGestureRecognizerStateCancelled) { - sender.enabled = NO; self.panVelocity = [sender velocityInView:ppvSuper].x; - if (self.panVelocity > 0) - [self show]; - else - [self hide]; + self.state = self.panVelocity > 0 ? MWMiPhoneLandscapePlacePageStateOpen : MWMiPhoneLandscapePlacePageStateClosed; + [self updateTargetPoint]; } } @@ -181,15 +177,15 @@ typedef NS_ENUM(NSUInteger, MWMiPhoneLandscapePlacePageState) { _targetPoint = targetPoint; __weak MWMiPhoneLandscapePlacePage * weakSelf = self; - if (self.state == MWMiPhoneLandscapePlacePageStateClosed) + BOOL const stateClosed = self.state == MWMiPhoneLandscapePlacePageStateClosed; + if (stateClosed) GetFramework().GetBalloonManager().RemovePin(); + self.panRecognizer.enabled = !stateClosed; [self startAnimatingPlacePage:self initialVelocity:CGPointMake(self.panVelocity, 0.0) completion:^ { __strong MWMiPhoneLandscapePlacePage * self = weakSelf; - if (self.state == MWMiPhoneLandscapePlacePageStateClosed) + if (stateClosed) [self.manager dismissPlacePage]; - else - self.panRecognizer.enabled = YES; }]; self.panVelocity = 0.0; } diff --git a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm index d8c7ebaa40..c5de9a8ac8 100644 --- a/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm +++ b/iphone/Maps/Classes/MWMiPhonePortraitPlacePage.mm @@ -159,8 +159,7 @@ typedef NS_ENUM(NSUInteger, MWMiPhonePortraitPlacePageState) UIView * ppv = self.extendedPlacePageView; UIView * ppvSuper = ppv.superview; - ppv.minY += [sender translationInView:ppvSuper].y; - ppv.midY = MAX(ppv.midY, [self getOpenTargetPoint].y); + ppv.midY = MAX(ppv.midY + [sender translationInView:ppvSuper].y, [self getOpenTargetPoint].y); _targetPoint = ppv.center; if (ppv.minY <= 0.0) [MWMPlacePageNavigationBar showNavigationBarForPlacePage:self];