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
相关文章推荐
- vmware workstation 9.0.2中 虚拟机上网以及与宿主主机通信问题解决方案【3】
- bootstrap常用功能快速入门以及常见问题解决方案
- Android版本兼容问题以及云之讯第三方兼容问题解决方案
- ajax跨域问题解决方案以及详解
- linux下svn服务器搭建以及相关问题解决方案
- 【译】用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
- vmware workstation 9.0.2中 虚拟机上网以及与宿主主机通信问题解决方案【2】
- Android webview旋转屏幕导致页面重新加载问题解决办法
- iOS导航栏变高、状态栏字体变大问题的分析以及解决办法
- Android屏幕适配方案-直接填写设计图上的像素尺寸即可完成适配-最大限度解决适配问题。
- [转]在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- mouseover以及mouseout事件问题解决方案
- 旋转屏幕导致Activity重建问题的解决办法
- untiy使用ngui插件屏幕自适应问题解决方案
- linux下svn服务器搭建以及相关问题解决方案
- 用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
- 问题解决:iOS6下UIWebView嵌vedio标签播放视频屏幕不旋转
- 加密解密时遇到的"不正确的数据"以及"要解密的数据长度无效"问题解决方案
- 【原】win 7 屏幕旋转问题的解决
- 转:linux下svn服务器搭建以及相关问题解决方案