美文网首页
iOS中如何设置手机横屏进入App首屏保持竖屏

iOS中如何设置手机横屏进入App首屏保持竖屏

作者: 光无影 | 来源:发表于2017-08-18 16:26 被阅读1045次

    在平时开发中,我们经常会忽略一个问题,就是当我们的App内有需要横屏的页面,而首页只支持竖屏,在plus的设备上,桌面是运行横屏的,此时进入App,首页布局会出错。在延伸一下这个问题,当我们开发一款支持iPad的App时,如何保证App在任何情况下进入首页都保持竖屏状态?

    方法一、

    我们可以这样设置首页的控制器:

        // 必须两个都是 .portrait才可以
        override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
            return .portrait
        }
        
        override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
            return .portrait
        }
    

    如果有UITabBarController,这样设置:

        // 必须两个都是 .portrait才可以
        override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
            return selectedViewController?.supportedInterfaceOrientations ?? .portrait
        }
        
        override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
            return selectedViewController?.preferredInterfaceOrientationForPresentation ?? .portrait
        }
    

    如果有 UINavigationController,这样设置:

        // 必须两个都是 .portrait才可以保证首页一定是竖屏
        override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
            return topViewController?.supportedInterfaceOrientations ?? .portrait
        }
        
        override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
            return topViewController?.preferredInterfaceOrientationForPresentation ?? .portrait
        }
    

    方法二、

    设置一个全局的变量

    var isAllowLandscape: Bool = false
    

    在AppDelegate中设置:

        // 控制整个App所允许旋转的方向
        func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
            return isAllowLandscape ? .allButUpsideDown : .portrait
        }
    

    在需要的时候改变 isAllowLandscape的值即可。

    相关文章

      网友评论

          本文标题:iOS中如何设置手机横屏进入App首屏保持竖屏

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