Изменить положение элементов управления AVPlayerViewController

У меня AVPlayerViewController с AVPlayer внутри. По умолчанию элементы управления воспроизведением отображаются в нижней части представления, есть ли способ сделать так, чтобы они отображались в верхней части представления?


person Alk    schedule 22.06.2016    source источник


Ответы (2)


AVPlayerViewController имеет частный UIView *_controlsView, в котором находится стойка управления. Вы можете перебирать подвиды контроллера представления или создавать интерфейс, который предоставляет это свойство, чтобы получить ссылку на него.

Так как это недокументированное представление, будьте осторожны при работе с частными свойствами. Игрок может даже не поддерживать перемещение _controlsView.

Я бы также посмотрел на свойство AVPlaybackControlsViewController *_playbackControlsViewController;, если _controlsView не совсем соответствует вашим потребностям.

AVPlayerViewController частный заголовок (для справки).< /а>

person JAL    schedule 22.06.2016

Там нет поддерживаемого встроенного способа. Для этого вам придется свернуть свои собственные элементы управления.

Также имейте в виду, что представление AVPlayerViewController не обязательно должно занимать весь экран. Таким образом, элементы управления могут отображаться в нижней части представления, но это не означает, что они должны отображаться в нижней части экрана. Спроектируйте представление таким образом, чтобы оно не мешало другому интерфейсу.

person matt    schedule 22.06.2016
comment
Нет ли способа просто получить доступ к представлению, в которое встроены элементы управления, и изменить его положение или ограничения? - person Alk; 22.06.2016
comment
Я вижу, вы отредактировали свой ответ, но это не помогло с моим дополнительным вопросом. - person Alk; 22.06.2016
comment
Да, это так. Мой ответ в силе. Какая часть Нет поддерживаемых встроенных способов не отвечает на вопрос? Конечно, вы можете возиться с элементами управления, как хотите, но не пытайтесь перенести это в магазин приложений. Мой совет: берите то, что вам дали, и двигайтесь дальше. - person matt; 22.06.2016
comment
Я не думаю, что это слишком абстрактный запрос, дизайн моего приложения просто не позволяет мне держать элементы управления в нижней части экрана, поскольку у меня есть другие представления, расположенные там. Я думаю, что это должно быть что-то, что должно быть настроено по умолчанию... - person Alk; 22.06.2016
comment
Конечно, я полностью согласен, так и должно быть. Но это не так. Программирование Cocoa — это о реальности, а не о ваших мечтах и ​​моих мечтах. Сообщите об ошибке Apple, запрашивая эту функцию. А пока идите дальше. — Вам не обязательно держать элементы управления внизу экрана. Вы должны держать их в нижней части представления контроллера представления. Это не одно и то же! Кажется, вы воображаете, что представление контроллера представления должно занимать весь экран. Это не так. - person matt; 22.06.2016
comment
Мой вид имеет UIView с эффектом размытия, который занимает нижние 100 пикселей экрана. Этот UIViewнакладывается поверх AVPlayerViewController, вся идея заключается в том, что видео воспроизводится в фоновом режиме, а к видео применяется эффект размытия. На данный момент органы управления находятся за моим UIView. Я попытался поместить весь вид над UIVIew, который отлично работает, однако затем у меня есть черный экран за размытием, что превосходит цель. - person Alk; 22.06.2016
comment
Но это не то, что вы спросили. Я ответил - правильно - на вопрос, который вы задали. - person matt; 22.06.2016