在iOS開發(fā)中,我們難免可能會遇到操作狀態(tài)欄的情況,最近抽點(diǎn)時(shí)間研究了下。其中包括:
狀態(tài)欄的隱藏及顯示,狀態(tài)欄的顏色,屏幕旋轉(zhuǎn)時(shí)狀態(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;
- 使用代碼單獨(dú)控制器設(shè)置
(BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO
感覺各種方法特別亂,有一些可能是歷史原因,如:
UIApplication全局設(shè)置的方法在iOS 9后已經(jīng)不推薦使用。
操作方式
這里暫把代碼全局設(shè)置的方式忽略不計(jì)。
啟動界面的狀態(tài)欄隱藏及顯示(沒有添加默認(rèn)是 顯示)
Status bar is initially hiddenYES隱藏NO顯示App界面狀態(tài)欄隱藏及顯示(沒有添加默認(rèn)是顯示)
View controller-based status bar appearance的設(shè)置必須在Status bar is initially hidden為YES
YES顯示NO隱藏在當(dāng)個界面對狀態(tài)欄隱藏及顯示(沒有添加默認(rèn)是 顯示)
重寫此方法,返回 YES隱藏 NO顯示
- (BOOL)prefersStatusBarHidden {
return YES;
}
必須保證View controller-based status bar appearance 置為YES的情況下
感覺好??,果斷把各種情況列出來一一揭破。
情況分類和Demo
啟動界面顯示狀態(tài)欄 + 全部界面顯示狀態(tài)欄
不做任何操作,默認(rèn)即可 Demo
啟動界面顯示狀態(tài)欄 + 全部界面隱藏狀態(tài)欄
在Info.plist 加
View controller-based status bar appearance設(shè)YES全部控制器重寫
prefersStatusBarHidden返回YESDemo
啟動界面顯示狀態(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è)
YESDemo
啟動界面隱藏狀態(tài)欄 + 全部界面隱藏狀態(tài)欄
在Info.plist 加 Status bar is initially hidden 設(shè)
YES在Info.plist 加 View controller-based status bar appearance 設(shè)
NODemo
啟動界面隱藏狀態(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點(diǎn)Star??,本文發(fā)布于梁大紅的技術(shù)Blog,轉(zhuǎn)載注明出處即可。