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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容