有三種可以修改狀態(tài)欄顏色的方法,以下一一介紹。
方法一:
先修改info.plist屬性,再在需要的地方調(diào)用代碼。注意每次調(diào)用該代碼都是全局改變的,所有界面的狀態(tài)欄顏色統(tǒng)一改變。
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
優(yōu)點(diǎn):一次設(shè)置,全局改變。跳轉(zhuǎn)到其他界面的時(shí)候也不用再次設(shè)置。
缺點(diǎn):一個(gè)是一定要注意,這種方式是全局改變的;然后是設(shè)置了info.plist的屬性后,方法二和三都將失效。
方法二:
使用UIViewController或者UINavigationController自帶的方法——-(UIStatusBarStyle)preferredStatusBarStyle。
- (UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleDefault;
}
使用用這個(gè)方法要注意兩個(gè)點(diǎn),第一個(gè)點(diǎn)就是info.plist中如果添加了View controller-based status bar appearance,那要將值設(shè)為YES,不然方法無效;第二點(diǎn)就是,uiviewcontroller雖然也有preferredStatusBarStyle方法,但是在uinavigationcontroller下是不起作用的。系統(tǒng)會(huì)優(yōu)先調(diào)用uinavigationcontroller的preferredStatusBarStyle方法,除非navigationbar是隱藏狀態(tài)的。
方法三:
改變navigationBar的barstyle。
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
需要注意的是,使用這種方法改變狀態(tài)欄的顏色,會(huì)同時(shí)改變導(dǎo)航欄的顏色。這個(gè)問題可以通過設(shè)置導(dǎo)航欄背景圖去避免;還有一個(gè)問題是,在uinavigationcontroller中重寫了preferredStatusBarStyle方法的話,會(huì)使這個(gè)方法失效。
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage:[self GetImageWithColor:[UIColor greenColor] andHeight:64] forBarMetrics:UIBarMetricsDefault];
}
以上就是改變狀態(tài)欄文字顏色的一些總結(jié),希望對(duì)大家有幫助。喜歡的點(diǎn)個(gè)贊~