今天一个项目需求,就是关于状态栏的,作为一个资深的两年开发者来说,不是难事,于是我直接就setStatusBarHidden statusBarStyle什么的都用上了,可是,注意啊,有可是了。是这样的,我也不说我遇到什么问题了,就直接说对状态栏的掩藏显示,字体颜色调整方法吧
首先,状态栏的隐藏与显示,别听网上的人们随便说,都是胡说八道,到最后我也没看到我想要的结果,说的基本都一样,关键是没有一个人给我正确答案。什么分IOS6,7,8,9.胡说八道。看下图:
这是官方API,人家说的很清楚了,看你设置了:
第一种情况:你没有加info.plist里边的关于状态栏的那个key,横屏后,苹果会把你的状态栏自动给隐藏掉,竖屏会自动再显现出来。
第二种情况:你在info.plist中加了"viewController-based status bar" 这个key,并且你把它的bool值设置为了YES,这样会造成什么结果呢?同样,你的状态栏会在横屏的时候自动隐藏,竖屏的时候自动添加。
第三种情况:你在info.plist中加了“viewController-based status bar”这个key,并且你把它的bool值设置为了NO,这样又是会怎样呢?你的状态栏不管在横屏还是在竖屏的时候都会显现出来,隐藏和显示需要你自己手动设置,通过UIApplication来设置。
好了,好像第一种和第二种没有什么区别,是这样吗?肯定不是了,如果你想设置状态栏的字体颜色,你就会感觉第一种无能为力,你就只能用第二种,第二种怎么设置呢?不是通过UIApplication哦!他是对你自己的一个具体的ViewController来设置,代码如下图:
所以如果你想控制某一个controller的状态栏字体颜色,你只需要在哪一个controller上来设置它的状态栏的显示和字体颜色的修改,如果你是想设置全局的状态栏的字体颜色和状态栏的是否显示你就需要找到你整个项目中的根视图控制器,一般来说应该是导航,在appdelegate中给导航写一个类别就OK,如果不是,那你就知道父视图控制器,然后设置即可。
第三种就是你可以直接在AppDelegate中通过UIApplication来设置全局的状态栏的字体颜色。