近期做项目发现,preferredStatusBarStyle
设置无效,始终是默认色,经查找发现只设置
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
是无效的,还需要做以下配置:
- target -> info.plist 添加
View controller-based status bar appearance
为Yes; - 在主控制器添加
/// 状态栏样式
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var prefersStatusBarHidden: Bool {
return false
}
/// 状态栏的隐藏与显示动画样式, 这个可以不设置
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
- 如果用到
UINavigationViewController
重写以下方法
override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
override var childForStatusBarHidden: UIViewController? {
return self.topViewController
}
- 如果用到
UITabViewController
重写以下方法
override var childForStatusBarStyle: UIViewController? {
return self.selectedViewController
}
override var childForStatusBarHidden: UIViewController? {
return self.selectedViewController
}
这几步完成后,就可以解决状态栏不能显示问题了;
更多干货请点击https://juejin.im/post/5d1cbea9e51d45775555094c
欢迎在评论区留言_
网友评论