ios控制屏幕旋轉(zhuǎn)及相關(guān)問題
測試開發(fā)環(huán)境: Xcode 11.3
語言環(huán)境: Swift 5.0
[TOC]
一踢京、設(shè)置屏幕旋轉(zhuǎn)支持的方向
-
App的屏幕方向控制
工程Target的
General
->Device Orientation
設(shè)置支持的屏幕方向-
在
AppDelegate
委托中設(shè)置支持的屏幕方向func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask
-
單頁面的屏幕方向控制: 在
ViewController
中覆蓋以下的屬性// 是否允許屏幕旋轉(zhuǎn) override var shouldAutorotate: Bool // 支持屏幕旋轉(zhuǎn)的方向 override var supportedInterfaceOrientations: UIInterfaceOrientationMask // 默認(rèn)的屏幕方向 override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation
二姓惑、鎖定單頁面屏幕方向
override var shouldAutorotate: Bool {
return false
}
三、shouldAutorotate
不執(zhí)行問題整理
在
Target
的General
設(shè)置中,支持的設(shè)備為iPad茵烈, 并且Device Orientation
支持Upside Down
, 不會(huì)執(zhí)行。-
UINavigationController
中的UIViewController
不執(zhí)行shouldAutorotate
,需要實(shí)現(xiàn)一下操作:extension UINavigationController { open override var shouldAutorotate: Bool { return visibleViewController?.shouldAutorotate ?? true } }