iOS7 Status Bar over Navigation Bar

不打扰是莪最后的温柔 提交于 2019-12-04 10:31:15

问题


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 file UIViewControllerBasedStatusBarAppearance 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.


回答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.




回答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




回答3:


This is the biggest issue that comes with iOS 7 and there are many solutions to solve this but in my opinion, the best way to solve is to remove the navigation bar and embed your view controller in a navigation controller by going to Editor > Embed In Navigation Controller.




回答4:


Add constraints top space to top layout guide



来源:https://stackoverflow.com/questions/18729064/ios7-status-bar-over-navigation-bar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!