11

我正在使用 iOS7 测试我的应用程序,但我遇到了状态栏问题。基本上状态栏出现在导航栏上,如下图所示:

iOS7 状态栏问题

我试着打电话给我的viewDidLoad

 self.edgesForExtendedLayout = UIRectEdgeNone;
 self.automaticallyAdjustsScrollViewInsets = YES;

没有成功。

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

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

4

4 回答 4

9

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

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

于 2013-09-10T21:54:09.617 回答
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);
}

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

我在这里回答:

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

于 2013-09-12T00:24:46.020 回答
0

这是 iOS 7 带来的最大问题,有很多解决方案可以解决这个问题,但在我看来,最好的解决方法是删除导航栏并将视图控制器嵌入到导航控制器中,方法是转到 Editor > Embed In导航控制器。

于 2013-10-28T11:01:53.707 回答
0

将约束顶部空间添加到顶部布局指南

在此处输入图像描述

于 2015-09-10T09:01:42.383 回答