В основном, как это сделать:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[[(AVCaptureVideoPreviewLayer *)[[self previewView] layer] connection] setVideoOrientation:(AVCaptureVideoOrientation)toInterfaceOrientation];
}
без использования устаревшего кода (willRotateToInterfaceOrientation
)
Моему приложению требуется iOS 9, если новый код задом напередсовместим настолько далеко, мне не нужно хранить приведенный выше код.Apple предлагает использовать viewWillTransitionToSize:withTransitionCoordinator:
, но я не знаю, как.
РЕДАКТИРОВАТЬ:
Я пытался (как предложено @Matt)
- (void)viewDidLoad
{
[super viewDidLoad];
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(
forName: UIApplication.willChangeStatusBarOrientationNotification,
object: nil, queue: nil) { n in
// this is where you respond
if let userInfo = n.userInfo {
// use the userInfo to find out what the new orientation is...
}
}
}
}
Но он выбрасывает Useиз-за ошибки переопределения необъявленного идентификатора, потому что он в быстром.