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

时间:2015-12-20 15:17:25

标签: ios swift uistatusbar

我在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环境变量。*

有没有人设法弄清楚如何干净利落地做到这一点?任何提示都会非常感激!

2 个答案:

答案 0 :(得分:2)

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

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

Changing status bar style to light

答案 1 :(得分:1)

此问题的答案已弃用。

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

像这样使用:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}