ios控制屏幕旋转及相关问题
测试开发环境: Xcode 11.3
语言环境: Swift 5.0
[TOC]
一、设置屏幕旋转支持的方向
-
App的屏幕方向控制
-
工程Target的
General
->Device Orientation
设置支持的屏幕方向 -
在
AppDelegate
委托中设置支持的屏幕方向func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask
-
-
单页面的屏幕方向控制: 在
ViewController
中覆盖以下的属性// 是否允许屏幕旋转 override var shouldAutorotate: Bool // 支持屏幕旋转的方向 override var supportedInterfaceOrientations: UIInterfaceOrientationMask // 默认的屏幕方向 override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
二、锁定单页面屏幕方向
override var shouldAutorotate: Bool {
return false
}
三、shouldAutorotate
不执行问题整理
-
在
Target
的General
设置中,支持的设备为iPad, 并且Device Orientation
支持Upside Down
, 不会执行。 -
UINavigationController
中的UIViewController
不执行shouldAutorotate
,需要实现一下操作:extension UINavigationController { open override var shouldAutorotate: Bool { return visibleViewController?.shouldAutorotate ?? true } }
网友评论