在iOS開發(fā)中,我們難免可能會遇到操作狀態(tài)欄的情況跷跪,最近抽點時間研究了下馋嗜。其中包括:
狀態(tài)欄的隱藏及顯示
,狀態(tài)欄的顏色
吵瞻,屏幕旋轉(zhuǎn)時狀態(tài)欄的適配
方案總結(jié)
在
Info.plist
加Status bar is initially hidden
在
Info.plist
加View controller-based status bar appearance
使用代碼全局設(shè)置
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;
- 使用代碼單獨控制器設(shè)置
(BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO
感覺各種方法特別亂嵌戈,有一些可能是歷史原因覆积,如:
UIApplication
全局設(shè)置的方法在iOS 9
后已經(jīng)不推薦使用。
操作方式
這里暫把代碼全局設(shè)置的方式忽略不計熟呛。
啟動界面的狀態(tài)欄隱藏及顯示(沒有添加默認是 顯示)
Status bar is initially hidden
YES
隱藏NO
顯示App界面狀態(tài)欄隱藏及顯示(沒有添加默認是顯示)
View controller-based status bar appearance
的設(shè)置必須在Status bar is initially hidden
為YES
YES
顯示NO
隱藏在當(dāng)個界面對狀態(tài)欄隱藏及顯示(沒有添加默認是 顯示)
重寫此方法宽档,返回 YES隱藏 NO顯示
- (BOOL)prefersStatusBarHidden {
return YES;
}
必須保證View controller-based status bar appearance
置為YES
的情況下
感覺好??,果斷把各種情況列出來一一揭破庵朝。
情況分類和Demo
啟動界面顯示狀態(tài)欄 + 全部界面顯示狀態(tài)欄
不做任何操作吗冤,默認即可 Demo
啟動界面顯示狀態(tài)欄 + 全部界面隱藏狀態(tài)欄
在Info.plist 加
View controller-based status bar appearance
設(shè)YES
全部控制器重寫
prefersStatusBarHidden
返回YES
Demo
啟動界面顯示狀態(tài)欄 + 界面自定義狀態(tài)欄的顯示和隱藏
在Info.plist 加
View controller-based status bar appearance
設(shè)YES
在需要隱藏的控制器重寫
prefersStatusBarHidden
返回YES
在需要顯示的控制器重寫
prefersStatusBarHidden
返回NO
(或者不重寫)Demo
啟動界面隱藏狀態(tài)欄 + 全部界面顯示狀態(tài)欄
在Info.plist 加 Status bar is initially hidden 設(shè)
YES
Demo
啟動界面隱藏狀態(tài)欄 + 全部界面隱藏狀態(tài)欄
在Info.plist 加 Status bar is initially hidden 設(shè)
YES
在Info.plist 加 View controller-based status bar appearance 設(shè)
NO
Demo
啟動界面隱藏狀態(tài)欄 + 界面自定義狀態(tài)欄的顯示和隱藏
在Info.plist 加 Status bar is initially hidden 設(shè)
YES
在Info.plist 加
View controller-based status bar appearance
設(shè)YES
(或者不加)在需要隱藏的控制器重寫
prefersStatusBarHidden
返回YES
在需要顯示的控制器重寫
prefersStatusBarHidden
返回NO
(或者不重寫)
Demo
聲明
感謝收看,有任何疑問和建議可在下方留言九府,歡迎Github點Star??椎瘟,本文發(fā)布于梁大紅的技術(shù)Blog,轉(zhuǎn)載注明出處即可侄旬。