IOS改變狀態(tài)欄文字顏色-UIStatusBarStyle

有三種可以修改狀態(tài)欄顏色的方法,以下一一介紹。

方法一:
先修改info.plist屬性,再在需要的地方調(diào)用代碼。注意每次調(diào)用該代碼都是全局改變的,所有界面的狀態(tài)欄顏色統(tǒng)一改變。

1471507537985_.pic.png
[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è)贊~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容