转载:https://www.jianshu.com/p/b24aebb4c12a
一、过去修改状态栏样式是通过添加 Info.plist 属性来修改:
1、在Info.plist 中设置 View controller-based status bar appearance 为 NO
2、在需要修改的控制器中
如果需要在全部View 中都改变样式,可以写在父类的相关方法中,或者写到AppDelegate.swift 中。
二、现在修改状态栏的样式可以使用以下方法,更加简便,不用配置Info.plist 属性:
但是如果控制器包装了一个UINavigationController ,就会发现即使重写了preferredStatusBarStyle 属性,状态栏样式也没有做任何的改变。
这是需要重写UINavigationController 的以下2个方法,来让系统调用当前控制器的preferredStatusBarStyle 属性。
如果应用的第一页面就需要修改状态栏样式,建议在 Deployment Info -> Status Bar Style 中预先设置好,以免开启应用时有过渡的效果。
三、关于动态修改状态栏
有时我们需要动态的修改状态栏是否隐藏 或者 更改状态栏样式。这时,可以自定义变量来记录状态。
例如:
⚠️ 当你present 一个VC 的时候,被present 的VC 的preferredStatusBarStyle 不会工作,你必须在present 前设置:
|
请发表评论