隐藏状态栏的几种方式

一、隐藏状态栏

方式一:

iOS7以后,隐藏状态栏需要同时在Info.plist中设置

Status bar is initially hiddenView controller-based status bar appearance这两个Key。

它们对应的Value都是Boolean类型。如图:


注意:使用这种方式设置之后,效果是全局的,默认情况下所有视图控制器都会隐藏状态栏。

在设置这两个key之后,我们就可以在程序中使用

[[UIApplication sharedApplication]setStatusBarHidden:NO];    

[[UIApplication sharedApplication]setStatusBarHidden:NO animated:YES];     

[[UIApplication sharedApplication]setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];     

来对状态栏进行代码上全局设置。通常,我们会将代码写在application: didFinishLaunchingWithOptions:里面。


方式二:

iOS7之后,苹果增加了

- (UIStatusBarStyle)preferredStatusBarStyle;

- (BOOL)prefersStatusBarHidden;

- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation;

在需要修改状态栏的视图控制器中重写这三个方法,分别对应状态栏的样式、是否隐藏状态栏、状态栏的动画效果。


状态栏的监测:

使用[UIApplication sharedApplication].isStatusBarHidden来判断当前的状态栏是否被隐藏。


两种方式:

当我们在Info.plist里设置了View controller-based status bar appearance = NO之后,方式二将失效,也就是说在视图控制器中重写的三个方法将不会再被调用。


方式二在视图控制器中的执行顺序:

依次是

-[ViewController preferredStatusBarStyle];

-[ViewController prefersStatusBarHidden];

-[ViewController preferredStatusBarUpdateAnimation];

-[ViewController loadView]。


你可能感兴趣的:(隐藏状态栏的几种方式)