设计稿要求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可达到全局效果。
等我后面的查找~