1、 在ViewController
中 重写属性preferredStatusBarStyle
无效
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
解决方案:
在重写的导航控制器(BaseNavigationController
)页面重写以下两个方法即可
// 重写这两个方法 修复 控制 preferredStatusBarStyle 方法无效
override var childForStatusBarHidden: UIViewController? {
return self.topViewController
}
override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
2 、滑动窗口动态改变状态栏preferredStatusBarStyle
时间、信号等颜色
/// 全局定义一个 变量控制导航
var alpha: CGFloat = 0.0
override var preferredStatusBarStyle: UIStatusBarStyle {
if alpha == 1 {
return .default
}
return .lightContent
}
// 在滑动时候计算位置偏移量
func scrollViewDidScroll(_ scrollView: UIScrollView) {
/// 此处省略部分代码,只说实现
if scrollView.contentOffset.y > CGFloat(100) {
alpha = 1
} else {
alpha = 0
}
// 下面这个方法千万不要忘记
setNeedsStatusBarAppearanceUpdate()
}