2009-11-16 47 views
0

任何人都可以建議我如何獲得包含'MPMoviePlayer'的所有按鈕的視圖?iPhone MPMoviePlayer獲取按鈕視圖

如果您不知道,至少您如何獲得MPMoviePlayer的主視圖/窗口。

更新:我需要這樣做在控制器視圖上添加一個按鈕。它看起來像這樣: Example http://img338.imageshack.us/img338/5184/poz.jpg

在此先感謝!

+2

如果您告訴我們您要做什麼,我們可以提供更好的幫助。 – 2009-11-16 19:19:54

+0

任何人都可以提出任何建議嗎? – mxg 2009-11-16 20:28:11

回答

5

您不能直接將它添加到MPMoviePlayerController的視圖 - 這是一個私人視圖,不可訪問。如果你想添加按鈕,你需要在所有東西的頂部創建一個透明的窗口,並添加按鈕。

Apple的MoviePlayer示例顯示瞭如何執行此操作。

+0

上面的截圖來自AppStore的應用程序。 – mxg 2009-11-16 22:25:56

+0

+1正確且唯一可能的答案 – Till 2009-11-16 23:03:31

+0

直到如果您要關注的更多,您可以選擇欄中的「查找」按鈕,而不是單獨的窗口。當控件消失時,按鈕消失。此外,下一個/上一個按鈕被禁用。 – mxg 2009-11-17 00:35:57

0

上面的答案實際上是不正確的:該視圖不是私人的,您可以添加視圖。你必須深入到足以找到它。

例如,在IOS 5.1,你可以嘗試這樣的事:

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

這將添加一個CC鍵的觀點,如果你的CC鍵的框架中指定正確的值,它會將按鈕插入控制面板,並通過觸摸控制面板隱藏/顯示。 FYI:這是我使用的框架:

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視圖]的子視圖適用於不同的IOS版本不同,所以認爲這是唯一的一個變通。不能保證這將在iOS 6上運行,並會在iOS 4.3上崩潰。

+0

爲了澄清,fullscreenOverlayView實際上是包含所有控制按鈕的視圖。 – 2012-09-19 18:33:19