[iOS]APP启动时隐藏状态栏

当APP启动时,我们首先看到的是启动图,这时,如果状态栏也跟着显示出来,会显得很难看,能不能在启动的时候隐藏状态栏,启动后再显示出来呢?
今天,我们就来讨论一下这个问题:
在另一篇文章UIStatusBarStyle修改状态栏样式,我介绍了如何修改状态栏的样式,有兴趣的话可以参考一下;
先来介绍一下共同需要的操作:
首先,在Info.plist文件添加字段View controller-based status bar appearance,类型为Boolean,设置为YES:

[iOS]APP启动时隐藏状态栏_第1张图片
添加字段View controller-based status bar appearance

PS: 这里如果设置为NO,状态栏的设置将不受代码的控制

然后,在工程设置General-->Deployment Info-->Status Bar Style下,勾选Hide status bar,暂时将状态栏隐藏:

[iOS]APP启动时隐藏状态栏_第2张图片
隐藏状态栏

最后,添加代码,在APP启动后,使状态栏重新显示:
在需要显示状态栏的UIViewController内重写下面的方法,即可显示状态栏:

- (BOOL)prefersStatusBarHidden {
    
    return NO;
}

如果要改变状态栏的样式,可重写下面的方法:

- (UIStatusBarStyle)preferredStatusBarStyle {
    
    return UIStatusBarStyleLightContent;
}

这样,即可在APP启动时隐藏状态栏,然后在启动后重新显示状态栏,并将状态栏的样式改为白色的;

注意: 这里的设置是在没有导航的情况下有效的,当含有导航时,方法preferredStatusBarStyle的设置是无效的,prefersStatusBarHidden不受影响;

如果,想要修改状态栏的样式,可使用下面的方法:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

关于这个,我在UIStatusBarStyle修改状态栏样式中也有介绍,有兴趣的同学,可以去看看.
以上便是笔者对此的理解,如果有不正确的地方,或者你有其他更好的方法,还请告知,感谢!!!

(完)

你可能感兴趣的:([iOS]APP启动时隐藏状态栏)