一棉饶、認(rèn)識狀態(tài)欄
iOS上的狀態(tài)欄就是指屏幕最上方20個像素的部分梅桩,首先咱們要分清楚兩個概念:
- 前景部分:電池、WiFi、時間顯示的部分
- 后景部分:前景部分后的背景顏色或者是圖片
設(shè)置UIStatusBar,實際上就是設(shè)置前景部分(時間、電池用押、網(wǎng)絡(luò)狀態(tài)等)的顏色黍氮。iOS7之后抹腿,只有兩種顏色狀態(tài)可選:
- 默認(rèn)的黑色(UIStatusBarStyleDefault)
- 白色(UIStatusBarStyleLightContent)
二晕鹊、設(shè)置狀態(tài)欄
設(shè)置狀態(tài)欄方式有多種
1.在plist文件中設(shè)置
2.在代碼中設(shè)置
在iOS9系統(tǒng)之前骆姐,我們可以通過
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
或者
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
設(shè)置狀態(tài)欄的前景顏色,在iOS9之后改方法已經(jīng)棄用捏题,設(shè)置后并沒有效果。
當(dāng)前蘋果推薦使用的方法是[UIViewController prefersStatusBarHidden]
,即在相應(yīng)的UIViewController中采用方法
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
進(jìn)行對界面的狀態(tài)欄設(shè)置肉渴。并且經(jīng)過我在xcode8.0上測試公荧,在iOS9及以后沒有設(shè)置UIStatusBarStyle的界面狀態(tài)欄會默認(rèn)為黑色。這時候可能有的小伙伴會問同规,那每個界面都設(shè)置多麻煩呀循狰。額額,難道你的程序沒有公共基類嘛券勺?其實只要在BaseViewController里面設(shè)置你的app狀態(tài)欄要顯示的顏色就可以了绪钥,而且我個人認(rèn)為這個方法非常好用。比如在你的app中关炼,絕大部分界面狀態(tài)欄是要顯示 UIStatusBarStyleLightContent
程腹,可能某個界面要顯示為 UIStatusBarStyleDefault
,你只需要在要顯示的界面重新設(shè)置
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
就可以了儒拂,返回到上個界面寸潦,你也無需擔(dān)心不需要再重新設(shè)置上個界面的狀態(tài)欄界面仍然會是白色前景的狀態(tài)欄色鸳。