iOS狀態欄Status的隱藏,有兩種狀態,一種是隱藏整個應用的狀態欄,一種是隱藏局部的狀態欄。
一、隱藏全部狀態欄
方法一:通過info.plist控制
- 隱藏啟動頁/歡迎頁(LunchScreen)的狀態欄
在info.plist中添加
Status bar is initially hidden
,
設置為YES,則隱藏啟動頁狀態欄。
- 隱藏控制器的狀態欄
在info.plist中添加
View controller-based status bar appearance
,
設置為NO,則全局隱藏控制器狀態欄。
注意:
當`Status bar is initially hidden = NO`時(即不隱藏啟動頁狀態欄), 設置`View controller-based status bar appearance`狀態無效, 只有當`Status bar is initially hidden = YES`時, 設置`View controller-based status bar appearance`的值為YES或NO才能控制狀態欄顯示和隱藏。
方法二:通過代碼控制
- 在info.plist中,添加
View controller-based status bar appearance
,並 設置為 NO ; - 在AppDelegate中,實現代碼
// OC [UIApplication sharedApplication].statusBarHidden = YES; // Swift // UIApplication.sharedApplication().statusBarHidden = true
注意:
1.如果想要通過代碼實現狀態欄隱藏,必須在 Info.plist 文件中添加
View controller-based status bar appearance
,並且必須設置為 NO ,否則代碼不會有任何效果;
2.代碼只能隱藏應用控制器的狀態欄,不能隱藏啟動頁的狀態欄。
二、隱藏局部狀態欄
想要隱藏某一個控制器的狀態欄,需要在控制器里代碼控制隱藏和顯示。
- 在info.plist里添加
View controller-based status bar appearance
,並設置為YES; - 在想要隱藏的控制器里實現方法
//控制狀態欄隱藏顯示參數 // @property (nonatomic, assign) BOOL preferStatusHidden; // OC - (BOOL)prefersStatusBarHidden { return YES; // return self.preferStatusHidden; } // Swift // override func prefersStatusBarHidden() -> Bool { // return true // }
注意:
如果想要通過代碼實現某個控制器狀態欄局部隱藏,必須在 Info.plist 文件中添加
View controller-based status bar appearance
,並且必須設置為 YES ,否則代碼不會有任何效果。
作者:Tony_HYH
鏈接:https://www.jianshu.com/p/d333963bc117
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。