Мое приложение состоит из панели инструментов и AVCaptureVideoPreviewLayer в фоне UIView. Я хотел бы видеть, что панель инструментов вращается относительно ориентации устройства, таким образом, в моем основном ViewController, я реализовал функцию:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait
|| interfaceOrientation == UIInterfaceOrientationLandscapeLeft
|| interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
Это хорошо работает, но когда интерфейсная ориентация изменяется, я вижу, что фон, который также поворачивает UIView (с видео слоем), таким образом, мое видео представление теперь играет левых или правых 90 градусов... Который не действительно прохладен!
Таким образом, мой вопрос: там какой-либо путь состоит в том, чтобы отключить анимацию авторотации на определенном UIView?
Я видел один подобный вопрос этому: Отключение самовращается для единственного UIView, но ответы не соответствуют моей проблеме, мне действительно нужно фоновое представление, чтобы не сделать перемещения, не обойти проблему со своего рода "встречной анимацией". Таким образом, я решил поднять эту тему.
Какие-либо идеи?
Спасибо!
Попробуйте следующее:
myVideoCaptureLayer.orientationSupported = NO;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return NO;
}
Или вы говорили отключать его только тогда, когда отображается определенный вид? Если это так, вы можете проверить это с помощью метода isDescendantOfView в UIView.