在做视频播放的时候,播放器的横屏这块,需要处理设备的旋转方向和横屏的逻辑比较多,因此在网上找了一些大牛的解决方案,暴力一点就是直接让当前的view横屏,给用户的体验就是页面已经横屏了,但是实际上的UI实现还是竖屏的.
这么做的唯一问题就是横屏时候,页面不会出现电池和网路的UI导航栏,暂时忽略
网上最详细的实现方案见https://www.jianshu.com/p/2fa9fe832929
下载demo之后可以看到的是,即使在iOS13以上的版本,依然可以达到预期的效果.
但是在引入到项目中之后,发现在iOS13以后,点击了横屏,不会隐藏状态栏,这个问题出在了哪里呢?
经过排查发现,在项目的Info.plist文件中,我们经常会将View controller-based status bar appearance 的属性值设置为NO,方便我们在项目中可以随意改变状态栏的颜色和字体颜色.
一旦设置了NO,那么上述的demo所展现出来的效果就不能理想的实现
这里直接上解决方案:
step1.
14.pngTARGETS - general - status Bar Style - Hide status bar - 选中
step2.
Appdelegate.m中的方法里面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[UIApplication sharedApplication].statusBarHidden = NO;
...
...
}
在任何需要改变状态栏显示和隐藏的位置,设置statusBarHidden的值即可解决问题
网友评论