一、在老版本的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];