iOS Status Bar 看这里就够啦

总结一下 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

你可能感兴趣的:(iOS Status Bar 看这里就够啦)