我们如何在整个应用程序中设置iOS 9状态栏的Light内容风格?
我想将Light Content样式应用于整个应用程序。
以下方法在iOS 9中不推荐使用replace方法。
-setStatusBarStyle:animation:
设置状态栏的样式,可select将animation过渡到新样式。
在AppDelegate
工作就像:
Swift 1.2代码:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
但是当我将我的项目升级到iOS 9 / Swift 2时,他们给我的警告信息是:
<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
所以根据从苹果论坛的解决scheme,从这个答案CGContextSaveGState:无效的上下文0x0仅在设备上的错误
所以,我已经根据解决scheme从info.plist
文件中移除了属性UIViewControllerBasedStatusBarAppearance
。
现在的情况是, 我们如何在iOS 9中为整个应用程序设置状态栏的Light Content风格?
来自论坛:
我不想为每个视图设置轻量内容。
有什么build议么?
Objective-C应该有同样的问题。
通过使用UINavigationController并将其导航栏的barStyle
设置为barStyle
,可以节省大量工作量。 你只需要做一次 你可以在故事板编辑器中做到这一点。
只要此UINavigationController处于命令状态,就会自动将状态栏的样式转换为.LightContent
。
你也可以使用:UIApplication.shared.statusBarStyle = .lightContent。 它也适用于swift3。