iPhone MPMoviePlayer получить вид кнопок - PullRequest
0 голосов
/ 16 ноября 2009

Может кто-нибудь подсказать, как получить представление, содержащее все кнопки из «MPMoviePlayer»?

Если вы не знаете, по крайней мере, как вы получаете основной вид / окно MPMoviePlayer.

ОБНОВЛЕНИЕ: Мне нужно сделать это, чтобы добавить кнопку в окне контроллера. Это будет выглядеть примерно так: Пример http://img338.imageshack.us/img338/5184/poz.jpg

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

Ответы [ 2 ]

5 голосов
/ 17 ноября 2009

Вы не можете добавить его непосредственно в представление MPMoviePlayerController - это частное представление, которое недоступно. Если вы хотите добавить кнопки, вам нужно создать прозрачное окно поверх всего и добавить к этому кнопки.

Пример Apple's MoviePlayer показывает, как это сделать.

0 голосов
/ 19 сентября 2012

Приведенный выше ответ на самом деле неверен: представление не является закрытым, и вы можете добавить к нему представления. Вам просто нужно погрузиться достаточно глубоко, чтобы найти его.

Например, в iOS 5.1 вы можете попробовать что-то вроде этого:

UIView *fullscreenOverlayView = [[[[[[[mpPlayer view] subviews] objectAtIndex:0] subviews] objectAtIndex:0] subviews] objectAtIndex:2];
[fullscreenOverlayView addSubview:ccButton];

Это добавит кнопку CC к представлению, и если вы укажете правильное значение для рамки кнопки CC, она вставит кнопку в панель управления и скроет / отобразит ее при касании панели управления. К вашему сведению: это кадр, который я использую:

BOOL isPortrait = UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation);

// all of these values are just based on measurement on screen
// to make sure that the CC button "seems" to be part of the player's control panel
if (isPortrait)
{
    return CGRectMake(222, 880, 40, 40);
}
else {
    return CGRectMake(350, 625, 40, 40);
}

ПРИМЕЧАНИЕ: набор подпредставлений [mpPlayer view] различен для разных версий iOS, поэтому рассматривайте это как обходной путь. Нет никаких гарантий, что это будет работать на iOS 6 и завершится сбоем на iOS 4.3.

...