diff --git a/iphone/Maps/Classes/Common.h b/iphone/Maps/Classes/Common.h index b8b9d3c352..3edad113fc 100644 --- a/iphone/Maps/Classes/Common.h +++ b/iphone/Maps/Classes/Common.h @@ -87,6 +87,12 @@ static inline BOOL equalScreenDimensions(CGFloat left, CGFloat right) return fabs(left - right) < 0.5; } +static inline CGFloat statusBarHeight() +{ + CGSize const statusBarSize = [UIApplication sharedApplication].statusBarFrame.size; + return MIN(statusBarSize.height, statusBarSize.width); +} + static inline void runAsyncOnMainQueue(dispatch_block_t block) { dispatch_async(dispatch_get_main_queue(), block); diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/SideButtons/MWMSideButtonsView.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/SideButtons/MWMSideButtonsView.mm index 4da2f2aa2e..3318fc6ded 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/SideButtons/MWMSideButtonsView.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/SideButtons/MWMSideButtonsView.mm @@ -83,9 +83,9 @@ CGFloat constexpr kZoomOutToLayoutPortraitOffset = 52; - (void)animate { [self layoutYPosition]; - CGFloat const statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; + CGFloat const spaceLeft = self.bottomBound - self.topBound - - (equalScreenDimensions(self.topBound, 0.0) ? statusBarHeight : 0.0); + (equalScreenDimensions(self.topBound, 0.0) ? statusBarHeight() : 0.0); BOOL const isZoomHidden = self.zoomIn.alpha == 0.0; BOOL const willZoomHide = (self.defaultBounds.size.height > spaceLeft); if (willZoomHide) diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationView.mm b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationView.mm index 868a943bca..014e5d8975 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationView.mm +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/Views/MWMNavigationView.mm @@ -1,8 +1,6 @@ #import "Common.h" #import "MWMNavigationView.h" -static CGFloat const kStatusbarHeight = 20.0; - @interface MWMNavigationView () @property (nonatomic) BOOL isVisible; @@ -47,7 +45,8 @@ static CGFloat const kStatusbarHeight = 20.0; { if (!CGRectEqualToRect(self.frame, self.defaultFrame)) self.frame = self.defaultFrame; - self.statusbarBackground.frame = CGRectMake(0.0, -kStatusbarHeight, self.width, kStatusbarHeight); + CGFloat const sbHeight = statusBarHeight(); + self.statusbarBackground.frame = CGRectMake(0.0, -sbHeight, self.width, sbHeight); [self.delegate navigationDashBoardDidUpdate]; } completion:^(BOOL finished) @@ -68,8 +67,9 @@ static CGFloat const kStatusbarHeight = 20.0; - (void)setTopBound:(CGFloat)topBound { - _topBound = MAX(topBound, kStatusbarHeight); - if (_topBound <= kStatusbarHeight) + CGFloat const sbHeight = statusBarHeight(); + _topBound = MAX(topBound, sbHeight); + if (_topBound <= sbHeight) { if (![self.statusbarBackground.superview isEqual:self]) [self addSubview:self.statusbarBackground];