我正在尝试使用ARKit开发一个具有一些AR体验的iOS应用。该应用程序现在具有一个带有“开始”按钮的启动视图(该按钮在应用程序刚启动后首先显示)和一个AR视图(在我点击启动视图中的“开始”按钮后显示)。我也有每个的viewcontrollers。 AR视图本质上是一个全屏的ARSCNView,它显示了来自摄像机的实时图像以及一些UIButton。
在我要在每个阶段指定方向之前,所有事情似乎都运行良好。需要使启动视图肖像和AR视图成为横向。为了自动更改屏幕的方向,我尝试将以下代码添加到AR ViewController的viewDidLoad()
中:
let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
并设置
override var shouldAutorotate: Bool {
return false
}
但是,它无法正常工作---尽管UI的方向已正确更改,但相机预览也被“旋转”了90度(因此,您从该应用中看到的所有图像都将被旋转90度)度):
image1 (设备现在实际上是人像,相机视图则是垂直的)
image2 (该设备现在在横向上是正确的,但是摄像机视图仍然是垂直的)
我还尝试了另一种方法:
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.landscapeRight
}
但是最终还是一样。
我希望它像下面一样,UI固定为横向,但相机始终处于法线方向(重力向下):
image3 (这是在允许自动旋转的情况下捕获的,但是我希望它在切换到此视图时自动旋转!)
任何帮助或提示将不胜感激!