swift 状态栏的动态显示

本篇讲的是preferredStatusBarStyle的设置方式

1。 删除 infolist view controller-based status bar appearance的设置(如果是UIApplication.shared.setStatusBarStyle(.default, animated: true),需要设置为NO,但此方法在iOS9.0废弃)

2.若是在appdelegate里面,把Viewcontrooler设置为导航控制器,或者设置tabbar为导航控制器,则需要做UINavigationController的扩展

extension UINavigationController{

    openoverridevarchildForStatusBarStyle:UIViewController?{

        return self.topViewController

    }

}

3 直接贴代码

classViewController:UIViewController{

      private var statusBarStyle:UIStatusBarStyle= .lightContent{

        didSet{

            self.setNeedsStatusBarAppearanceUpdate();

        }

    }


    overridevarpreferredStatusBarStyle:UIStatusBarStyle{

        return statusBarStyle;

    }

    overridefunctouchesBegan(_touches:Set, with event:UIEvent?) {

        if statusBarStyle ==  .default{

            statusBarStyle= .lightContent;

        }else{

            statusBarStyle= .default;

        }

    }

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

推荐阅读更多精彩内容