ios修改status bar顏色及xcode7下日誌出現CGContextSaveGState: invalid context 0x0錯誤

設計稿要求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可達到全局效果。

等我後面的查找~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章