swift 屏幕旋转以及状态栏问题解决方案

Swift屏幕旋转以及状态栏问题解决方案


本文主要介绍屏幕旋转的方法处理,期间状态栏出现的问题的解决,还有强制屏幕翻转的问题

点击查看本文Demo

1.屏幕旋转项目配置,支持home键在下,左,右

swift 屏幕旋转以及状态栏问题解决方案_第1张图片

2. 屏幕旋转所用到的方法

override var shouldAutorotate: Bool
override var supportedInterfaceOrientations: UIInterfaceOrientationMask
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
刚开始以为只要在控制器中,重写这几个方法就行了,但是这样做是没有效果的,如果项目中有导航控制器,必须在自定义的导航控制器实现,然后再在子控制器中实现。

swift 屏幕旋转以及状态栏问题解决方案_第2张图片

2.1注意:如果项目有TabbarController,必须实现以下方法

swift 屏幕旋转以及状态栏问题解决方案_第3张图片

3.在需要旋转的控制器中实现如下方法

swift 屏幕旋转以及状态栏问题解决方案_第4张图片


以上即可完成对控制器的上左右的翻转,左右说的是相对home键所在的位置,具体查看源码注释

4.涉及到的一些监听屏幕旋转的方法,注意如何强制屏幕旋转,如下

swift 屏幕旋转以及状态栏问题解决方案_第5张图片

swift 屏幕旋转以及状态栏问题解决方案_第6张图片

4.1 注意:强制屏幕旋转需要在子控制器中调用强制旋转方法,并且实现支持的旋转方向方法

swift 屏幕旋转以及状态栏问题解决方案_第7张图片


5.状态栏问题解决:(1)状态栏横屏消失与隐藏 (2)状态栏颜色修改

(1)状态栏横屏消失与隐藏

配置info.plist


在控制器中重写

override var prefersStatusBarHidden: Bool

即可

(2)状态栏颜色修改

可以通过导航控制器的barStyle进行控制



以上就完成了所有需要的配置

点击查看本文Demo

效果图(图有点儿low,图不重要,主要看功能)

swift 屏幕旋转以及状态栏问题解决方案_第8张图片


swift 屏幕旋转以及状态栏问题解决方案_第9张图片


swift 屏幕旋转以及状态栏问题解决方案_第10张图片



附录:(不推荐)

网上还有其他的解决方案,通过监听屏幕的旋转,实现对控制器的旋转,个人感觉还是以上的这种方式比较好,更加容易控制,如有兴趣可以参考下下面:

1.设置旋转方向为home在下

swift 屏幕旋转以及状态栏问题解决方案_第11张图片

2.在导航控制器中使用通知监听

swift 屏幕旋转以及状态栏问题解决方案_第12张图片


3.在子控制器中关闭自动旋转

swift 屏幕旋转以及状态栏问题解决方案_第13张图片


点击查看本文Demo

你可能感兴趣的:(Swift)