Я пытаюсь создать приложение для iOS, в котором есть опыт работы с AR, используя ARKit.Теперь у приложения есть вид запуска с кнопкой «Пуск» (которая отображается первой после запуска приложения) и вид AR (который отображается после нажатия кнопки «Пуск» на экране запуска), иУ меня также есть viewcontrollers для каждого.Представление AR по сути представляет собой полноэкранный режим ARSCNView, который показывает изображение с камеры в режиме реального времени, а также некоторые кнопки UIB.
Кажется, все работает хорошо, пока я не хочу указать ориентацию на каждом этапе.Требуется, чтобы начальный вид был портретным, а вид AR - правым.Чтобы автоматически изменить ориентацию экрана, я попытался добавить следующий код в viewDidLoad()
для AR ViewController:
let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
и установить
override var shouldAutorotate: Bool {
return false
}
Однако онне работали хорошо --- Хотя ориентация пользовательского интерфейса была изменена правильно, предварительный просмотр камеры также был «повернут» на 90 градусов (поэтому все изображения, которые вы увидите в приложении, будут поворачиваться на 90 градусов):
image1 (Устройство теперь физически портретное, изображение с камеры несколько вертикальное)
image2 (Устройство теперь физически вправо, ноизображение с камеры по-прежнему вертикальное)
Я также попробовал другой метод:
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.landscapeRight
}
Но все закончилось так же.
Я хочу, чтобы он был как на рисунке ниже,Интерфейс пользователя зафиксирован в альбомной ориентации, но камера всегда находится в нормальной ориентации (гравитация вниз):
image3 (снимок сделан с разрешенным автоматическим поворотом, но я хочу, чтобы он вращался автоматическипри переходе на этот вид!)
Любая помощь или подсказка будет принята с благодарностью!