您的位置:首页 > 移动开发 > Swift

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

2017-09-27 10:47 246 查看

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

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

点击查看本文Demo

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



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

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



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



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



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

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





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



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

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

配置info.plist



在控制器中重写

override var prefersStatusBarHidden: Bool




即可

(2)状态栏颜色修改

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





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

点击查看本文Demo

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









附录:(不推荐)

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

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



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



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



点击查看本文Demo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shouldAutorotate Swift