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 ,否则代码不会有任何效果。