尽管将UIViewControllerBasedStatusBarAppearance设置为NO,但在iPad mini上仍可显示状态栏

时间:2014-03-17 11:02:48

标签: ios ios7 statusbar

我有一个iPhone应用,UIViewControllerBasedStatusBarAppearance设置为NO。我测试过的任何设备(iPhone 4,5,5s,5c,iPad 4ish)都没有显示状态栏。除了iPad mini(第一代)。 使用iOS SDK是7.1。

状态栏在iPad mini 1st gen上可见。我希望状态栏也隐藏在此设置中。

我甚至尝试将[[UIApplication sharedApplication] setStatusBarHidden:NO];添加到didFinishLaunchingWithOptions,但它没有改变任何内容。

状态栏样式也设置为"在应用程序启动期间隐藏"。

iPad mini运行iOS 7.1。

是的,这是一个边缘案例,但我这次无法得到预期的结果。

另外一点信息:我使用的是cocos2d-iphone v2.1。从来没有遇到过这个问题,因为我发布了一堆具有相同引擎的应用程序。 我开始认为这是与组合相关的错误:iOS 7.1和iPad mini。

这是设置:

Plist setup looks like this

6 个答案:

答案 0 :(得分:13)

我遇到了同样的问题,我想提出一些解释。

只有在iPad上启动iPhone(仅限)应用程序时才会出现此问题。如果应用程序是通用的,则不会有任何问题。 最令人讨厌的行为发生在没有Retina显示屏的iPad上使用iPhone专用应用程序。因为状态栏会覆盖应用程序的顶部。


我的plist文件:

enter image description here


仅限iPhone的应用程序

<强> iPhone

enter image description here

<强> ipad公司:

enter image description here

iPad Retina:

enter image description here


通用应用

<强> iPhone:

enter image description here

<强> ipad公司:

enter image description here

iPad Retina:

enter image description here

答案 1 :(得分:7)

这是iPad Mini iOS 7.1版中的一个错误。

以典型的方式,他们修复了一个问题(空白状态栏)并创建了另一个问题。

请务必向Apple报告错误。

答案 2 :(得分:2)

除了Giebler的回答之外,由于我没有足够的声誉来评论,这个错误似乎也适用于运行iOS 7.x的非Retina设备,其中包括iPad 2.

答案 3 :(得分:0)

您应该设置“查看基于控制器的状态栏外观”YES,并在要隐藏的每个视图中调用此方法。最好为您的视图创建一个基本视图控制器并调用一次。

- (BOOL)prefersStatusBarHidden {
    return YES;
}

答案 4 :(得分:0)

<key>UIStatusBarHidden</key>
    <true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>

尝试将此设置到您的info.plist文件中。

答案 5 :(得分:0)

我有一个解决方法。添加以下内容:

- (UIStatusBarStyle) preferredStatusBarStyle {
    return -1;
}

无论你在哪里:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

这显然很糟糕,但它似乎对我有用 - 至少到目前为止。

我注意到这导致输出如下:

<Error>: CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context  and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

我找到了另一种解决方法,而且这个错误可能会使这个解决方法起作用,所以我坚持使用它,但值得注意。