preferredStatusBarStyle 设置不起作用

1、全局设置:

如果想全局设置statusbar的主题颜色,可以在plist里增加一行 UIStatusBarStyle的键值,这里可以设置两个值,就是上面提到那两个 UIStatusBarStyleDefault 和 UIStatusBarStyleLightContent

或者在代码里设置:

UIApplication.shared.statusBarStyle = .lightContent

同时在plist里加一条View controller-based status bar appearance,并将其值设置为NO

2、如果想在不同viewcontroller里自定义statusbar的主题颜色可以用override下面这个方法:

- (UIStatusBarStyle)preferredStatusBarStyle { 

    return UIStatusBarStyleLightContent; 

}

但是有个前提:

mineNav.navigationBar.barStyle = .black

override var preferredStatusBarStyle:UIStatusBarStyle

{if needsLightContent

{return.lightContent}else{return.default}}

private func changeStyle()

{needsLightContent=true

setNeedsStatusBarAppearanceUpdate()

}

iOS9.0后状态栏的显示效果交给了controller自己控制,其中preferredStatusBarStyle方法负责返回样式,setNeedsStatusBarAppearanceUpdate负责通知controller刷新状态栏

参考:https://www.jianshu.com/p/ab0fa73d02c0

你可能感兴趣的:(preferredStatusBarStyle 设置不起作用)