一、有關(guān)狀態(tài)欄的隱藏
-
1.1万细、方式一:提示:控制器之間的狀態(tài)欄不會(huì)相互影響 (下面是
iOS9
之后的設(shè)置扑眉,不支持 iOS 9以前設(shè)備)-
<1>纸泄、在
info.plist
里面添加下面代碼為YES
View controller-based status bar appearance
-
<2>、在控制器里面定義一個(gè)屬性
@property(nonatomic,assign) BOOL statusHiden;
-
<3>腰素、重寫(xiě)狀態(tài)欄的一個(gè)方法
- (BOOL)prefersStatusBarHidden{ return self.statusHiden; }
-
<4>聘裁、改變狀態(tài)欄的隱藏與顯示
-
隱藏狀態(tài)欄
self.statusHiden = YES; // 刷新?tīng)顟B(tài)欄 [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
-
顯示狀態(tài)欄
self.statusHiden = NO; // 刷新?tīng)顟B(tài)欄 [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
-
-
-
1.2、方式二:iOS 9 之前以及iOS9 之后都支持 的你可以如下設(shè)置弓千,提示:控制器之間的狀態(tài)欄是會(huì) 相互影響
-
<1>衡便、在
info.plist
里面添加下面代碼為NO
View controller-based status bar appearance
-
<2>、在控制器里面改變狀態(tài)欄的顯示與隱藏
-
隱藏狀態(tài)欄
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
-
顯示狀態(tài)欄
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
-
-
-
1.3洋访、對(duì)比優(yōu)缺點(diǎn):
- 方式一:
優(yōu)點(diǎn):各自控制器之間互不影響
缺點(diǎn):不支持 iOS9之前的設(shè)備 - 方式二:
優(yōu)點(diǎn):支持 所有的設(shè)備
缺點(diǎn):各自控制器之間相互影響 - 總結(jié):如果你的設(shè)備最低支持iOS9,那就選擇方式一就好
- 方式一:
二镣陕、有關(guān)狀態(tài)欄樣式設(shè)置
-
2.1、狀態(tài)欄樣式
typedef NS_ENUM(NSInteger, UIStatusBarStyle) { //默認(rèn)樣式姻政,黑字透明狀態(tài)欄呆抑,適合用于背景色為亮色的頁(yè)面 UIStatusBarStyleDefault = 0, // Dark content, for use on light backgrounds //白字透明狀態(tài)欄,適合用于背景色為暗色的頁(yè)面 UIStatusBarStyleLightContent NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds // iOS7.0以前黑底白字汁展,iOS7以后跟UIStatusBarStyleLightContent效果一樣 UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1, // iOS7.0以前啟動(dòng)頁(yè)為灰底白字鹊碍,iOS7以后跟UIStatusBarStyleLightContent效果一樣 UIStatusBarStyleBlackOpaque NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2, } __TVOS_PROHIBITED;
-
2.2、方式一:提示:控制器之間的狀態(tài)欄不會(huì)相互影響 (下面是
iOS9
之后的設(shè)置食绿,不支持iOS 9
以前設(shè)備)-
<1>侈咕、在
info.plist
里面添加下面代碼為YES
View controller-based status bar appearance
-
<2>、在控制器里面定義一個(gè)屬性
@property(nonatomic,assign) NSInteger barStyle;
-
<3>炫欺、重寫(xiě)狀態(tài)欄樣式的一個(gè)方法
// 狀態(tài)欄的樣式 - (UIStatusBarStyle)preferredStatusBarStyle{ return self.barStyle; }
-
<4>乎完、改變狀態(tài)欄的隱藏與顯示
-
狀態(tài)欄黑色樣式
self.barStyle = UIStatusBarStyleDefault; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
-
狀態(tài)欄白色樣式
self.barStyle = UIStatusBarStyleLightContent; [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
-
-
-
2.3、方式二:iOS 9 之前以及iOS9 之后都支持 的你可以如下設(shè)置品洛,提示:控制器之間的狀態(tài)欄是會(huì) 相互影響
-
<1>树姨、在
info.plist
里面添加下面代碼為NO
View controller-based status bar appearance
-
<2>、在控制器里面改變狀態(tài)欄的顯示與隱藏
-
狀態(tài)欄黑色樣式
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
-
狀態(tài)欄白色樣式
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
-
-
-
1.3桥状、對(duì)比優(yōu)缺點(diǎn):
- 方式一:
優(yōu)點(diǎn):各自控制器之間互不影響
缺點(diǎn):不支持 iOS9之前的設(shè)備 - 方式二:
優(yōu)點(diǎn):支持 所有的設(shè)備
缺點(diǎn):各自控制器之間相互影響 - 總結(jié):如果你的設(shè)備最低支持iOS9,那就選擇方式一就好
- 方式一:
三帽揪、提示
- 3.1、
info.plist
文件中辅斟,View controller-based status bar appearance
項(xiàng)設(shè)為YES
转晰,則View controller
對(duì)status bar
的設(shè)置優(yōu)先級(jí)高于application
的設(shè)置。
為NO
則以application
的設(shè)置為準(zhǔn)士飒,view controller
的prefersStatusBarHidden
以及preferredStatusBarStyle
方法無(wú)效查邢,是根本不會(huì)被調(diào)用的。 - 3.2酵幕、上面測(cè)試的demo
推薦博客iOS狀態(tài)欄詳解