есть способ принудительной альбомной ориентации
Введите код в viewDidLoad()
let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
, а также,
override var shouldAutorotate: Bool {
return true
}
для SwiftUI
Мы устанавливаем ориентацию проекта так, чтобы она поддерживала только портретный режим.
Затем в свой AppDelegate добавьте переменную экземпляра для ориентации и согласуйте с методом делегата supportInterfaceOrientationsFor.
static var orientationLock = UIInterfaceOrientationMask.portrait
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return AppDelegate.orientationLock
}
Затем, когда вы собираетесь представить свой ландшафтный вид, выполните следующие действия:
AppDelegate.orientationLock = UIInterfaceOrientationMask.landscapeLeft
UIDevice.current.setValue(UIInterfaceOrientation.landscapeLeft, forKey: "orientation")
UINavigationController.attemptRotationToDeviceOrientation()
И при увольнении
AppDelegate.orientationLock = UIInterfaceOrientationMask.portrait
UIDevice.current.setValue(UIInterfaceOrientation.portrait, forKey: "orientation")
UINavigationController.attemptRotationToDeviceOrientation()
Надеюсь, это поможет вам ...:)