總結(jié)一下 status bar 的樣式修改
- 隱藏
- 樣式( .default , .lightContent )
開始動手吧
將 app 的 info.list 加一條 View controller-based status bar appearance = YES, 寫的很清除了就是 status bar的外觀 根據(jù) viewcontroller來,而不是根據(jù) 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