4

正如标题所说,我有一个隐藏状态栏的导航栏。我一直在模拟器上运行我的应用程序,最近开始在设备 iPhone 4s iOS7 上运行它,并注意到状态栏被隐藏或被隐藏,你只能看到绿色的电池寿命。我认为它被隐藏的原因是我的一个视图控制器中有一个搜索栏,当我使用搜索栏时,你可以看到状态栏、单元格提供程序、时间等。

我所做的事情是为了看看我是否不小心这样做了:

Checked the Target-> Deployment Info ->Status Bar Style. It is in Default.

Checked each xib file to see if the status bar is set to none. All of them are at Default.

Searched the keyword "hidden" in all my .m files.

有人有什么建议吗?我在这里搜索过,只看到关于人们实际上想要隐藏它而不是修复它的帖子。如果有人有类似的事情发生在他们身上,我愿意尝试任何事情。

回答:

I was using a navigation bar image and the sizes were different. 
I was using iOS6 bar size, 32x32, but now I am using 88x64 and 
that fixed it for iOS7. How do I check if phone is iOS6 or iOS7?
4

2 回答 2

2

状态栏没有隐藏。在 iOS 7 上,状态栏始终是可见的,它与您的应用程序重叠,而在 iOS 6 和更早版本上则没有。这是新的“正常”行为。状态栏不再有背景颜色。它可以是清晰背景上的黑色文本 ( UIStatusBarStyleDefault) 或清晰背景上的浅色文本 ( UIStatusBarStyleLightContent)。

如果您将状态栏外观更改为浅色内容,您将能够在深色背景上看到您的状态栏。

状态栏外观由两个互斥的基础路径之一控制:您可以以传统方式以编程方式设置它们,或者UIKit根据 UIViewController 的一些新属性为您更新外观。后一个选项默认开启。检查您的应用程序的plist“基于 ViewController 的状态栏外观”的值,以查看您使用的是哪一个。如果将此值设置为YES,则应用程序中的每个顶级视图控制器(标准UIKit容器视图控制器除外)都需要覆盖preferredStatusBarStyle,返回默认样式或灯光样式。如果将plist值编辑为NO,则可以使用熟悉的UIApplication方法管理状态栏外观。

于 2013-09-18T03:09:28.280 回答
0

我知道它的 knida 为时已晚,但这种方法解决了我的状态栏问题:

我所做的是设置

   self.view.backgroundcolor=[UIcolor WhiteColor];

然后在主视图中创建一个与 self.view 具有相同宽度和高度的子视图,然后相应地修改其框架,例如:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    if(self.customView.frame.origin.y == 0) {
        CGRect viewBounds = [self.customView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.customView.frame = viewBounds;
    }

}
于 2014-06-05T16:02:27.273 回答