iOS7 Status Bar over Navigation Bar
Solution 1
edgesForExtendedLayout
and automaticallyAdjustsScrollViewInsets
are just standards for how parent view controllers lay out / manage the view. It looks like you're using a UINavigationBar, but not a UINavigationController, which means these properties won't do anything unless you code them to.
You can switch to use a UINavigationController, or you can programmatically change the height of your UINavigationBar from 44 to 64 on iOS 7.
Solution 2
Add an outlet to the UINavigationBar.
float currentVersion = 7.0;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) {
// iOS 7
self.navBar.frame = CGRectMake(self.navBar.frame.origin.x, self.navBar.frame.origin.y, self.navBar.frame.size.width, 64);
}
You can also hide the status bar, this might be a better approach on these views to get more screen real estate.
I answered that here:
Position of navigation bar for modal view - iOS7
Related videos on Youtube
![PizzaRings](https://i.stack.imgur.com/bZDxr.png?s=256&g=1)
PizzaRings
Updated on September 16, 2022Comments
-
PizzaRings almost 2 years
I'm testing my application with iOS7 and I have an issue with status bar. Basically the status bar appear over navigation bar like the image below:
I try to call in my
viewDidLoad
self.edgesForExtendedLayout = UIRectEdgeNone; self.automaticallyAdjustsScrollViewInsets = YES;
without success.
I have also added to the
info.plist
fileUIViewControllerBasedStatusBarAppearance
with no luck.The main problem is that the application must be compatible with iOS6 and iOS7 and currently on iOS7 the view shifted 20px from the top.
-
Aaron Brager almost 11 years
-
-
PizzaRings almost 11 yearsAfter some testing I decided to hide the status bar in iOS7
-
DogCoffee almost 11 yearsThats what I've done as well. Make sure you do this for iOS7, View controller-based status bar appearance = NO, in the plist.