将 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章