将 UIStatusBarStyle 更改为 LightContent(白色)在 Swift 中不起作用

Posted

技术标签:

【中文标题】将 UIStatusBarStyle 更改为 LightContent(白色)在 Swift 中不起作用【英文标题】:Changing UIStatusBarStyle to LightContent (white) not working in Swift 【发布时间】:2016-03-26 17:55:23 【问题描述】:

我在 Swift 中尝试将状态栏颜色更改为白色时遇到了很多麻烦。我已经在这里检查了与此相关的所有问题,并且没有一个解决方案似乎可以正常工作。现在我正在使用 info.plist 中的键:“查看基于控制器的状态栏外观”设置为 NO。在我的 AppDelegate.Swift 我有:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.
    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
    return true

栏现在是白色的,但我在控制台中有错误:

错误:CGContextSaveGState:无效的上下文 0x0。如果要查看回溯,请设置 CG_CONTEXT_SHOW_BACKTRACE 环境变量。*

有没有人设法弄清楚如何干净地做到这一点?任何提示将不胜感激!

【问题讨论】:

【参考方案1】:

如果您想在整个应用中使用轻量级的内容样式,则不需要代码。您已经将“基于控制器的状态栏外观”更改为NO,所以现在您需要做的就是在项目导航器窗格中选择您的项目,然后选择常规选项卡并查找状态栏样式下拉菜单 -它位于部署信息部分,就在设备方向下方。

正如您在下面的屏幕截图中所见,只需将其更改为 Light 即可。

【讨论】:

这行得通,我已经从 AppDelegate.swift 中删除了代码,但是我仍然在控制台中收到这些错误。 我很高兴它有效;请将答案标记为正确,以便其他人轻松找到!如果错误仍然存​​在,a) 可能是您的代码中存在其他问题(不是您的状态栏),或者 b) 这是 Apple 的问题。 Apple 确实倾向于留下奇怪的错误消息,这可能会让人很困惑。 我还没有其他代码。如果我在 plist 中没有密钥,则该栏保持黑色。如果密钥在 plist 中,它可以工作,但我收到该错误消息......似乎很奇怪【参考方案2】:

此问题的答案已弃用。

'setStatusBarStyle(_:animated:)' 在 ios 9.0 中已弃用:使用 -[UIViewController preferredStatusBarStyle]

这样使用:

override var preferredStatusBarStyle: UIStatusBarStyle 
    return .lightContent

【讨论】:

以上是关于将 UIStatusBarStyle 更改为 LightContent(白色)在 Swift 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将活动链接图标更改为半圆形

将图像属性更改为 <li>示例标题</>

如何将菜单和menuitem角色的默认JAWS读取更改为自定义角色?

如何将sql代码更改为informatica进程

选择第四个列表项将颜色更改为灰色

使用javascript将光标更改为锚标记中的默认值