設計稿要求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可達到全局效果。
等我後面的查找~