首页 > 代码库 > 关于在ios7之后改变状态栏颜色
关于在ios7之后改变状态栏颜色
看到网上都说 在ios7之后要这样设置
首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES;
然后,在UIViewController子类中实现以下两个方法:
- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } - (BOOL)prefersStatusBarHidden { return NO; } 最后,在需要刷新状态栏样式的时候,调用[self setNeedsStatusBarAppearanceUpdate]方法即可刷新 注意:
[self setNeedsStatusBarAppearanceUpdate]在push 或者 present 的controller里面调用才起作用。
奇怪的是 我这样设置之后 只有在登录界面有用 界面登录跳转之后(正确的说 应该是还没跳转的时候 网络请求数据之后 状态栏的颜色就变为黑色了,并且在下个界面怎么设置都没用、也许是因为我登录界面是present过去或者什么原因吧,先不讨论这个)颜色就变回去了,不知道是这个方法有问题,还是我代码有问题。
然后我找了一个在我的工程中可用的。略微修改,因为我刚进界面会有张全屏图。
调用setStatusBarStyle 任何iOS版本可用
plist文件中
代码中
if (IsIOS7Later) { [[UIApplication sharedApplication] setStatusBarHidden:NO]; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; }
而且 我还发现 ios6.0下,登录的界面没有状态栏了。。(登录界面不是navg)只好
if (!IsIOS7Later) {
[UIApplicationsharedApplication].statusBarHidden =NO;
}
。。。哎 具体为什么
- (UIStatusBarStyle)preferredStatusBarStyle
这个方法在另外一个界面就不行了 还是以后再研究吧 估计是我代码问题。关于在ios7之后改变状态栏颜色
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。