我正在开发仅具有一个视图控制器和固定方向(人像)的IOS应用。但是,如果用户要阅读手册,则设备会自动变为横向模式。我的实现通常可以正常工作,但是我在那发现了一个错误:如果我进入横向模式(使用用户手册菜单点),然后将设备转回纵向模式,然后回到菜单,则UI会出现问题:
在appDelegate.swift
中,我输入了以下代码:
var deviceOrientation = UIInterfaceOrientationMask.portrait
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return deviceOrientation
}
在ViewController.swift
中,我使用以下方法在定向模式之间进行切换:
func landscapeMode() {
appDelegate.deviceOrientation = .landscapeLeft
let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}
func portraitMode() {
appDelegate.deviceOrientation = .portrait
let value = UIInterfaceOrientation.portrait.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
}
我希望无论当前设备的方向如何,方向都会改变,但是在设备在进行方向(软件)操作之前先进行定向的情况下,目前尚无法正常工作。