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