From d853f828d614778e66ec4e6b3b0b79cbb9601d5f Mon Sep 17 00:00:00 2001 From: Vladimir Kotikov Date: Wed, 30 Dec 2015 10:16:58 +0300 Subject: [PATCH] CB-8720 Fix status bar position when app started upside down on iOS 7. This closes #44 --- src/ios/CDVStatusBar.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ios/CDVStatusBar.m b/src/ios/CDVStatusBar.m index e7bf869..7e071b2 100644 --- a/src/ios/CDVStatusBar.m +++ b/src/ios/CDVStatusBar.m @@ -180,6 +180,16 @@ static const void *kStatusBarStyle = &kStatusBarStyle; - (void) initializeStatusBarBackgroundView { CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame; + + if ([[UIApplication sharedApplication]statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown && + statusBarFrame.size.height + statusBarFrame.origin.y == [[UIScreen mainScreen] bounds].size.height) { + + // When started in upside-down orientation on iOS 7, status bar will be bound to lower edge of the + // screen (statusBarFrame.origin.y will be somewhere around screen height). In this case we need to + // correct frame's coordinates + statusBarFrame.origin.y = 0; + } + statusBarFrame = [self invertFrameIfNeeded:statusBarFrame orientation:self.viewController.interfaceOrientation]; _statusBarBackgroundView = [[UIView alloc] initWithFrame:statusBarFrame];