iOS 修改狀態欄preferredStatusBarStyle不執行問題


一、在老版本的iOS中,狀態欄永遠都是白色風格。而在iOS 7中,我們可以修改每個view controller中狀態欄的外觀。通過UIStatusBarStyle常量可以指定狀態欄的內容是暗色或亮色。默認情況下,狀態欄的顯示是暗色。也就是說,狀態欄上的時間、電池指示器和Wi-Fi信號顯示為暗色。如果導航欄中使用暗色為背景,那么看起來的效果如下圖所示:

如上圖這種情況下,我們可能希望將導航欄的風格修改為亮色。這里有兩個方法可以實現。在iOS 7中,我們可以在每個view controller中overridingpreferredStatusBarStyle:方法,如下所示:

- (UIStatusBarStyle)preferredStatusBarStyle {     
    return UIStatusBarStyleLightContent; 
}

PS:此法的只有在設置了以下代碼才會被調用(對於preferredStatusBarStyle不執行問題):

[self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];

上面代碼的效果如下圖所示:

二、在iOS 7中,通過上面的方法來修改狀態欄風格非常的棒。另外,我們也可以使用UIApplication的statusBarStyle方法來設置狀態欄,不過,首先需要停止使用View controller-based status bar appearance。在project target的Info tab中,插入一個新的key,名字為View controller-based status bar appearance,並將其值設置為NO。

然后就可以使用下面的代碼來設置狀態欄風格了:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM