iOS 动态修改状态栏风格
App 中经常需要根据页面的风格改变电池栏文字的颜色,记录一下都是如何调整的。
- UIStatusBarStyle 的样式
 - 改变状态栏文字颜色的方式
 - 状态栏的显示和隐藏
 
UIStatusBarStyle 的样式
iOS 13.0 中新增了暗黑模式,对应的状态栏风格也增加了一个 darkContent。
1  | public enum UIStatusBarStyle : Int {  | 
改变状态栏文字的颜色
是否可以在不同页面设置不同的风格,首先要配置好 Info.plist 中的 
1  | View controller-based status bar appearance  | 
属性,默认为 YES。
- 如果整个应用只需要使用固定的风格,上述属性改为 
NO。在应用配置或者代码中设定好风格即可。 - 如果状态栏颜色需要视页面而定,上述属性改为 
YES,并且重写控制器的preferredStatusBarStyle方法。 
对于需要调整 ViewController 风格的页面,我们重写它的 getter,这是一个 只读 的属性。
1  | override var preferredStatusBarStyle: UIStatusBarStyle {  | 
当然如果导航控制器重写了这个方法,它的子控制器都会以 导航控制器 的为准。如果子控制器中有需要改变风格的,同样也需要自己实现这个方法。
状态栏的显示和隐藏
- 全局隐藏的话,很简单,直接改配置。
 - 部分页面隐藏,同上,重写~~
 
1  | override var prefersStatusBarHidden: Bool {  |