总结一下 status bar 的样式修改
- 隐藏
- 样式( .default , .lightContent )
开始动手吧
-
将 app 的 info.list 加一条 View controller-based status bar appearance = YES, 写的很清除了就是 status bar的外观 根据 viewcontroller来,而不是根据 UIApplication 来。
-
重写 viewcontroller
override var preferredStatusBarStyle: UIStatusBarStyle {
return .default
}
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
- 特别注意的是如果你的 viewcontroller 是套在 NavigationController 里的这种情况,还需要重写容器 Viewcontroller(同样的,还有 TabBarViewController 之类的)
extension UINavigationController {
open override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
open override var childViewControllerForStatusBarStyle: UIViewController? {
return visibleViewController
}
open override var childViewControllerForStatusBarHidden: UIViewController? {
return visibleViewController
}
}
这里有例子 Demo
网友评论