Я много читал по этой теме, но не удовлетворен моим текущим решением.
Я создаю приложение для захвата, которое в основном находится в портретном режиме, но я бы хотел, чтобы изображение с камеры было вlandscape.
Я использовал эти простые функции, чтобы принудительно изменить ориентацию viewWillAppear в моем контроллере представления захвата.
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
}
Одна проблема заключается в том, что контроллер вида все еще изначально визуально загружаетсяв портретной ориентации, а затем поворачивается в альбомную ориентацию.
Как заставить его отображаться в альбомной ориентации, чтобы он никогда не появлялся в портретной ориентации?
В будущем мне может потребоваться захват портрета в качествехорошо с поведением, очень похожим на приложение камеры по умолчанию (значки вращаются, но кнопка захвата и предварительный просмотр остаются теми же. фотографии выходят в правильной ориентации).Я хотел бы создать этот интерфейс в раскадровке, чтобы я мог видеть как раскадровку, так и альбомную ориентацию, меняя ориентацию устройства.
Как сделать так, чтобы экран камеры справлялся с подлинным изменением ориентации устройства в раскадровке?Я не нашел чистых решений для этого.