狀態(tài)欄黑色(默認(rèn))風(fēng)格:UIStatusBarStyleDefault
?狀態(tài)欄白色風(fēng)格:UIStatusBarStyleLightContent?
一煤率、在info.plist中敦间,將View controller-based status bar appearance設(shè)為NO
?狀態(tài)欄字體的顏色只由下面的屬性設(shè)定:
[UIApplication sharedApplication].statusBarStyle
1臊恋、在info.plist中霉撵,將View controller-based status bar appearance設(shè)為NO;
1嗅绰、在AppDelegate中設(shè)置為白色風(fēng)格:
2抡秆、在特定的ViewController中做如下設(shè)置:
二、在info.plist中侦讨,將View controller-based status bar appearance設(shè)為YES驶冒,或者沒有設(shè)置。
View controller-based status bar appearance的默認(rèn)值就是YES韵卤。
如果View controller-based status bar appearance為YES骗污。設(shè)置[UIApplication sharedApplication].statusBarStyle的值無效。
用下面的方法:
1沈条、在ViewController中重寫preferredStatusBarStyle方法需忿。
2、在viewDidload中調(diào)用:
但是蜡歹,當(dāng)ViewController在Navigation中時(shí)屋厘,preferredStatusBarStyle方法根本不用被調(diào)用。
原因是月而,[self setNeedsStatusBarAppearanceUpdate]發(fā)出后汗洒,只會調(diào)用NavigationController中的preferredStatusBarStyle方法,ViewController中的preferredStatusBarStyley方法不會被調(diào)用景鼠。
解決辦法有兩個:
方法一:設(shè)置NavigationBar的barStyle 屬性會影響statusBar的字體和背景色仲翎。如下:
//status bar的字體為白色痹扇,導(dǎo)航欄的背景色是黑色。
//status bar的字體為黑色溯香,導(dǎo)航欄的背景色是白色鲫构,狀態(tài)欄的背景色也是白色。
方法二:自定義一個NavigationBar的子類玫坛,在這個子類中重寫preferredStatusBarStyle方法:
iOS 設(shè)置狀態(tài)欄顏色(UIStatusBar)