gpt4 book ai didi

ios - 在一个 View Controller 中强制横向方向后重置 Xcode 中的自动旋转(swift 4)

转载 作者:行者123 更新时间:2023-11-30 11:25:21 26 4
gpt4 key购买 nike

我开始工作的一个应用程序支持所有设备方向,除了横向 View 之外。

为了强制此方向,我通过 AppDelegate 设置了横向方向值:

AppDelegate.swift

var shouldSupportAllOrientation = true
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if (shouldSupportAllOrientation == true){
return UIInterfaceOrientationMask.all
}
return UIInterfaceOrientationMask.landscape
}

ViewController.swift

let appdelegate = UIApplication.shared.delegate as! AppDelegate
appdelegate.shouldSupportAllOrientation = false
let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")

但是,当应用导航到其他 View Controller ,并且设备处于纵向(物理上)时, View 会以横向模式显示,直到设备旋转。

有没有办法检测“真实设备方向”?

谢谢

最佳答案

我也遇到过类似的问题。强制 UIDevice.current.orientation 后,设备似乎无法再更新它(这看起来符合预期,因为它是一个仅获取属性并代表物理方向)

尝试在 ViewController.swift 中覆盖supportedInterfaceOrientations:

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscape
}

之后,如果您打开此 VC,interfaceOrientation 是横向的,但 UIDevice.current.orientation 是真实的。请注意:如果您使用框架和边界,您可能需要翻转 View 的宽度和高度。

关于ios - 在一个 View Controller 中强制横向方向后重置 Xcode 中的自动旋转(swift 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50800214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com