美文网首页
53.状态栏样式设置

53.状态栏样式设置

作者: noonez | 来源:发表于2018-02-24 18:59 被阅读16次

需求:App启动时状态栏是黑色样式,进入页面后是白色样式:
1.先在plist中增加属性


image

设置为Yes:页面会根据当前ViewController的preferredStatusBarStyle来设置状态栏的样式;No:进入APP时设置的样式,不能改变.
我使用Yes,因为我需要改变颜色.


image.png
在这里设置进入APP时状态栏的样式
或者在plist中增加
image.png

是一样的效果,当然这里的值选Default.

2.根控制器是ViewController时,只需要覆盖属性:

override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent //返回白色样式
    }

根控制器是NavigationController时:

override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }
override var childViewControllerForStatusBarStyle: UIViewController?{
        return self.viewControllers.first
    }

是TabBarController时:

override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent
    }
override var childViewControllerForStatusBarStyle: UIViewController?{
        return return self.selectedViewController
    }

同时tabBarController的viewControllers中的所有controller需要覆盖属性:

override var preferredStatusBarStyle: UIStatusBarStyle{
        return .lightContent //返回白色样式
    }

当根控制的childViewControllerForStatusBarStyle属性不为空时,它所加载的控制器在显示状态栏时,都先使用childViewControllerForStatusBarStyle所返回的控制器的preferredStatusBarStyle值

相关文章

网友评论

      本文标题:53.状态栏样式设置

      本文链接:https://www.haomeiwen.com/subject/ozrcxftx.html