Как добавить заголовок над MPMovieplayerViewController и скрыть его при нажатии

Мне нужно добавить заголовок поверх верхней панели инструментов в MPMoviePlayerViewController, и если я играю видео, пользовательский указатель должен скрыть заголовок, как будто он скрывает любые другие элементы управления.

В настоящее время я добавляю UILabel как подпункт представления moviePlayer. Хотя этот подход добавляет заголовок поверх верхней панели (я устанавливаю соответствующий кадр), он не скрывает заголовок, когда пользователь нажимает на экран.

Есть ли прямой api / hack, через который я могу получить доступ к верхней панели инструментов MPMoviePlayerViewController? Я думаю, что, если я могу добавить заголовок как subView верхней панели инструментов, процесс скрытия будет обрабатываться MPMoviePlayerViewController. Есть предположения?

Заранее спасибо!

Обратите внимание, что мой ответ относится к MPMoviePlayerController , а не MPMoviePlayerViewController . Я бы посоветовал вам использовать его либо напрямую, либо через ссылку на MPMoviePlayerViewController .

Прежде всего, никогда не добавляйте ничего прямо в представление MPMoviePlayerController . Это склонно иметь всевозможные странные побочные эффекты и явно не рекомендуется в документации. Вместо этого используйте его backgroundView для размещения вашего настраиваемого материала или родителя представления MPMoviePlayerController (что делает его родным).

Но опять же, это не решит проблему, которую вы описываете, имея этот вид / ярлык / независимо от того, появляется ли оно снова вместе с элементами управления, если пользователь забирает или просто ждет.

Есть способы сделать это, но я боюсь, что они находятся в серой зоне – или, другими словами, есть шанс получить отказ от Apple. На самом деле это не просто серая зона, но явное нарушение принципов разработки Apple.

Просто, я использовал этот трюк в прошлом в крупных приложениях и никогда не обнаруживался / отклонялся.

Во-первых, вам нужно найти интерфейс-представление вашего экземпляра MPMoviePlayerController.

 /** * This quirky hack tries to locate the interface view within the supposingly opaque MPMoviePlayerController * view hierachy. * @note This has a fat chance of breaking and/or getting rejected by Apple * * @return interface view reference or nil if none was found */ - (UIView *)interfaceView { for (UIView *views in [self.player.view subviews]) { for (UIView *subViews in [views subviews]) { for (UIView *controlView in [subViews subviews]) { if ([controlView isKindOfClass:NSClassFromString(@"MPInlineVideoOverlay")]) { return controlView; } } } } return nil; } UIView *interfaceView = [self interfaceView]; 

Теперь, когда вы получили экземпляр, просто добавьте в него представление / ярлык / все.

 [interfaceView addSubview:myAwesomeCustomView]; 
  • Ошибка тела ожидаемого метода в XCODE
  • Получение названия трека, который в настоящее время воспроизводится
  • вращать UIView вокруг своего центра, но несколько раз
  • «InterfaceOrientation» устарел в iOS 8, Как изменить этот метод Objective C
  • Пользовательский шрифт не отображается на устройстве, но работает на симуляторе
  • Вызывается ли willMoveToSuperview (с нулем) при удалении представления из иерархии?
  • Можно ли добавить фиксированный контент в UIScrollView?
  • UIButton не меняет название
  • ограничивая осязаемую область в UIButton в IPhone?
  • сортировать NSInteger используя sortUsingComparator
  • это хорошая практика, чтобы использовать много IBOutlets?
  • Interesting Posts

    RestKit: Как выполнить несколько запросов и получить ответ после их завершения?

    Как определить высоту UICollectionView с FlowLayout

    Подзаголовок iOS7 обрезается, если границы родительского представления

    Не удалось запустить twitter api в моей программе iOS, ошибка с Fabric

    Приложение Crash iOS: ZL36GetSFTrimCharSetForChineseOrJapanesePPK9TFontInfo_block_invoke

    Профили профилей становятся недействительными после обновления на вкладке «Учетные записи» Xcode

    Приложение сбой в потоке с именем com.apple.CFURLCACHE_work_queue

    Поделитесь ссылкой через схему URL (например, через Telegram)

    Возможно ли получить токен устройства, даже если Push Notification не включен?

    Почему я могу отправлять сообщения на освобожденный экземпляр NSArray?

    Как обновить UIWebView, когда приложение выходит на передний план?

    Parse и Xcode: блоки не будут автозаполнены.

    Как представить контроллер просмотра из внешней структуры в swift?

    iOS / Swift: PFFacebookUtils.logInWithPermissions возвращает пользователя nil и ошибку

    IOS UIPageViewController – проведите только часть экрана

    Давайте будем гением компьютера.