在默認情況下枕屉,APP的狀態(tài)欄和進入后的啟動頁狀態(tài)欄都是黑色动漾,但由于業(yè)務(wù)需求有時會需要改變狀態(tài)欄的顏色,在此總結(jié)一下比較常用的幾種情況
一抵知、沒有包裝導航控制器
-
所有頁面皆為白色
1.第一種方式
在項目的** Info.plist **文件里增加一項 View controller-based status bar appearance = NO县爬,如下圖:
其中的** Status bar style **項可在項目的General中設(shè)置阳啥,也可自己修改
完成以上的修改后,項目的狀態(tài)欄就變?yōu)榱税咨?/p>
2.第二種方式
在根控制器里添加如下代碼(我這里以tabBarController為例):
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.tabBarController;
}
所有tabBar的子控制器狀態(tài)欄都變?yōu)榱税咨?/p>
-
某個頁面為白色
在需要變白的控制器里添加如下代碼:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
</br>
二财喳、包裝了導航控制器
-
所有頁面皆為白色
如果也有tabBarController的話察迟,上面的第二種方式同樣適用斩狱。
其他方式:
a. 同沒包裝導航控制器的第一種方式一樣,設(shè)置好下圖中的兩項即可扎瓶。
b. 同樣需要設(shè)置好 View controller-based status bar appearance = NO 所踊,然后在
AppDelegate.m
里輸入[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
同樣可以使狀態(tài)欄變白。
-
某個頁面為白色
在導航控制器.m文件中輸入以下代碼:
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.topViewController;
}
然后在需要變白的控制器.m里去輸入以下代碼:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
完成這兩步操作后即可實現(xiàn)概荷,效果如下:
最后
并非只有以上的方法才能實現(xiàn)狀態(tài)欄變白的效果秕岛,此處只介紹了我自己在實際中用到的一些方法。