您的位置:首页 > 移动开发 > IOS开发

ios修改status bar颜色及xcode7下日志出现CGContextSaveGState: invalid context 0x0错误

2015-10-14 11:10 495 查看
设计稿要求Status bar的颜色是白色的,按照以往的做法就是:

info.plist添加View controller-based status bar appearance为NO(默认是YES)



然后在页面执行[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

即可让Status bar变成白色~

 

——————————然后问题就在xcode7出现了————————

<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.


出现这个的原因是,之前的做法是IOS6的做法,在IOS7&8中是兼容的,但是到了IOS9就不建议这么做了:-)

虽然不影响程序运行与使用,但是作为强迫症患者,不希望看到任何警告~~~~~

所以,现在的做法是:

1、View controller-based status bar appearance设置为YES(其实在info.plist删掉这条也可以)

2、在需要改变Status bar的view controller增加一个方法

#pragma mark - 白色status bar
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}


注:这个方法只能改变当前view controller的颜色,不能全局更改

留坑:

1、这种方法在IOS9以下是否会生效?

2、怎么全局改变

试了下,在navigation bar controller里实现preferredStatusBarStyle可达到全局效果。

等我后面的查找~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios Status bar ios9 xcode7