导航栏上的iOS7状态栏

Piz*_*ngs 11 iphone objective-c ios6 ios7 xcode5

我正在用iOS7测试我的应用程序,我的状态栏有问题.基本上状态栏显示在导航栏上,如下图所示:

iOS7状态栏问题

我试着打电话给我 viewDidLoad

 self.edgesForExtendedLayout = UIRectEdgeNone;
 self.automaticallyAdjustsScrollViewInsets = YES;
Run Code Online (Sandbox Code Playgroud)

没有成功.

我也没有运气添加到info.plist文件中UIViewControllerBasedStatusBarAppearance.

主要问题是应用程序必须与iOS6和iOS7兼容,目前在iOS7上,视图从顶部移动了20px.

Aar*_*ger 9

edgesForExtendedLayout并且automaticallyAdjustsScrollViewInsets只是父视图控制器如何布局/管理视图的标准.看起来你正在使用UINavigationBar,而不是UINavigationController,这意味着除非你编写它们,否则这些属性不会做任何事情.

您可以切换到使用UINavigationController,也可以在iOS 7上以编程方式将UINavigationBar的高度从44更改为64.


Dog*_*fee 5

添加一个出口到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);
}
Run Code Online (Sandbox Code Playgroud)

您还可以隐藏状态栏,这可能是这些视图的更好方法,以获得更多的屏幕空间.

我在这里回答:

模态视图导航栏的位置 - iOS7