欢迎光临企业官网建站网站,提供自助建设系统平台服务

企业官网建站

专业为公司品牌推广建设网站

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

作者:jcmp      发布时间:2021-05-09      浏览量:0
在平时开发中,我们经常会忽略一个问题,就

在平时开发中,我们经常会忽略一个问题,就是当我们的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的值即可。