Отключение авторотации для UIView

Мое приложение состоит из панели инструментов и AVCaptureVideoPreviewLayer в фоне UIView. Я хотел бы видеть, что панель инструментов вращается относительно ориентации устройства, таким образом, в моем основном ViewController, я реализовал функцию:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait
            || interfaceOrientation == UIInterfaceOrientationLandscapeLeft
            || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Это хорошо работает, но когда интерфейсная ориентация изменяется, я вижу, что фон, который также поворачивает UIView (с видео слоем), таким образом, мое видео представление теперь играет левых или правых 90 градусов... Который не действительно прохладен!
Таким образом, мой вопрос: там какой-либо путь состоит в том, чтобы отключить анимацию авторотации на определенном UIView?

Я видел один подобный вопрос этому: Отключение самовращается для единственного UIView, но ответы не соответствуют моей проблеме, мне действительно нужно фоновое представление, чтобы не сделать перемещения, не обойти проблему со своего рода "встречной анимацией". Таким образом, я решил поднять эту тему.

Какие-либо идеи?

Спасибо!

21
задан Community 23 May 2017 в 11:54
поделиться

2 ответа

Попробуйте следующее:

myVideoCaptureLayer.orientationSupported = NO;
-2
ответ дан 29 November 2019 в 22:05
поделиться
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  return NO;
}

Или вы говорили отключать его только тогда, когда отображается определенный вид? Если это так, вы можете проверить это с помощью метода isDescendantOfView в UIView.

2
ответ дан 29 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: