美文网首页
iOS 横竖屏切换

iOS 横竖屏切换

作者: 凌云01 | 来源:发表于2017-11-18 10:32 被阅读14次

    网上关于横竖屏切换的资料很多,但是很容易踩到坑,不是屏幕不旋转,就是屏幕旋转后没有状态栏等,在写的小demo里屏幕能够旋转,但是在项目中就不能够旋转,开始猜测是配置的问题,困扰好几天,最后找到问题的根源,现在整理处理出来

    有两种情况1、工程中某个界面支持横竖屏   2、每个界面都支持横竖屏

    https://gitee.com/myc12/HengShuPingQieHuan.git

    一、工程中某个界面支持横竖屏,其他的界面不支持旋转

    首先在Info里面配置你支持的方向信息

    图一

    targets -> General -> Deployment Info

    接下来就是在工程中需要写的代码,代码控制屏幕的旋转

    1、AppDelegate

    (1)定义变量var allowRotation: Bool = false    //默认情况下是false, 不支持横竖屏

    (2)定义方法

    Swift代码

    图2

    2、要横屏的ViewController

    (1) 获取变量  

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    (2)在需要触发横屏的方法里写以下代码

    appDelegate.allowRotation = true // true表示支持横屏

    let value = UIInterfaceOrientation.landscapeLeft.rawValue

    UIDevice.current.setValue(value, forKey: "orientation")

    (3)在需要转回竖屏的方法里这样处理

    appDelegate.allowRotation = false // false 表示支持竖屏

    let value = UIInterfaceOrientation.portrait.rawValue

    UIDevice.current.setValue(value, forKey: "orientation")

    注意横竖屏时界面的适配

    好了,这样就处理完了,但是可能会遇到屏幕不旋转的情况,这又为什么,别急,查看你的根控制器是哪个控制器,在根控制器里重写下面图3两个方法就可以了

    图3

    横竖屏demo链接

    相关文章

      网友评论

          本文标题:iOS 横竖屏切换

          本文链接:https://www.haomeiwen.com/subject/ltgjnttx.html