iOS隐藏状态栏实现方案笔记

在做视频播放的时候,播放器的横屏这块,需要处理设备的旋转方向和横屏的逻辑比较多,因此在网上找了一些大牛的解决方案,暴力一点就是直接让当前的view横屏,给用户的体验就是页面已经横屏了,但是实际上的UI实现还是竖屏的.

这么做的唯一问题就是横屏时候,页面不会出现电池和网路的UI导航栏,暂时忽略

网上最详细的实现方案见https://www.jianshu.com/p/2fa9fe832929

下载demo之后可以看到的是,即使在iOS13以上的版本,依然可以达到预期的效果.

但是在引入到项目中之后,发现在iOS13以后,点击了横屏,不会隐藏状态栏,这个问题出在了哪里呢?

经过排查发现,在项目的Info.plist文件中,我们经常会将View controller-based status bar appearance 的属性值设置为NO,方便我们在项目中可以随意改变状态栏的颜色和字体颜色.

一旦设置了NO,那么上述的demo所展现出来的效果就不能理想的实现

这里直接上解决方案:

step1.

iOS隐藏状态栏实现方案笔记_第1张图片
14.png

TARGETS - general - status Bar Style - Hide status bar - 选中

step2.
Appdelegate.m中的方法里面

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ...
 [UIApplication sharedApplication].statusBarHidden = NO;
    ...
    ...
}

在任何需要改变状态栏显示和隐藏的位置,设置statusBarHidden的值即可解决问题

你可能感兴趣的:(iOS隐藏状态栏实现方案笔记)