• Swift UIStatusBarStyle 设置


    参考:

    https://www.jianshu.com/p/e57715cf2f8a

    一. 设置全局控制器状态栏样式

    1.取消控制器管理状态栏样式,在Supporting Files下的Info.plist添加一个属性设置

     value: NO```
    
    ![image.png](http://upload-images.jianshu.io/upload_images/1533163-ba52dbf85ed4be15.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    2.通过UIApplication来管理统一管理状态栏的样式,设置如下:
    `UIApplication.shared.statusBarStyle = .lightContent`
    ####二. 设置局部控制器状态栏样式
    新建项目默认通过局部控制器状态栏样式来管理,所以info.plist不需要做任何设置
    1.如果只是`UIViewController`的话,只需要重写`preferredStatusBarStyle`方法

    override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
    }

    2.如果`UIViewController`存在`UINavigationController`,需要在自定义`NavigationController`中重写`preferredStatusBarStyle`方法

    override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
    }

    3.如果`UIViewController`存在`UINavigationController`,又想要通过`rootViewController`来控制`UIStatusBarStyle`,则需要在自定义`NavigationController`重写`childViewControllerForStatusBarStyle`方法
    override var childViewControllerForStatusBarStyle: UIViewController?{
    return self.topViewController
    }

    `rootViewController`重写`preferredStatusBarStyle`方法

    override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
    }

    4. 对于有导航栏的VC只用拓展也阔以,效果 = 方法3
    extension UINavigationController {
        
        /// 设置导航栏背景颜色
        ///
        /// - Parameter color: 设置的颜色
        func setNavBarBackGroundColor(color: UIColor) {
            self.navigationBar.barTintColor = color
            ///
            if color == UIColor.white{
                self.navigationBar.barStyle = .default
            }else if color == main_tinColor{
                self.navigationBar.barStyle = .black
            }
        }

    5. 但是 如果某个VC隐藏了导航栏

    直接使用 代码就会生效

        override var preferredStatusBarStyle: UIStatusBarStyle{
            return .lightContent
        }
     
  • 相关阅读:
    bootstrap经典总结
    C#操作CAD-读取和修改数据
    C#操作CAD-调用winform
    C#操作CAD-初始化、引用dll
    oracle查询时间
    ArcGIS API for JavaScript开发环境搭建及第一个实例demo
    mysql命令大全
    第一次配置mysql5.6
    ExcelHelper
    excel常用函数
  • 原文地址:https://www.cnblogs.com/qingzZ/p/13271658.html
Copyright © 2020-2023  润新知