2010-12-15 108 views
1

我實例化了MPMoviePlayerViewController並使用它加載電影。我如何檢測用戶觸摸播放器上的任何位置?如何檢測MPMoviePlayerViewController上的觸摸

我添加了覆蓋,它的工作原理就像那樣。但問題是,現在我沒有控制玩家(音量,暫停等)。有沒有任何通知顯示這個?

+0

最好的方法是對MoviePlayerController進行子類化,但是如果您需要處理單擊以解除視圖,那麼f.e.對於一個簡介視頻,我已經做了一個簡單的解決方案... – bontoJR 2010-12-15 10:06:09

+0

但我不想子類化它必須有其他方式...我有疊加視圖,我想隱藏/顯示它當我點擊電影...嘗試像這樣,但沒有運氣..UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(movieTapped :)]; [player.movi​​ePlayer.view addGestureRecognizer:tap]; – 1110 2010-12-15 12:22:33

+0

我更新了問題,請檢查。 – 1110 2010-12-15 15:10:00

回答

1

您可以將手勢識別器添加到作爲電影播放器​​父級的視圖中。

然後你可以添加一個代表到手勢識別器來檢查到底是什麼命中......並丟棄手勢識別器事件,如果它不是媒體播放器。

的代碼可能看起來像:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    UIView *treffer = [app.window hitTest:[touch locationInView:app.window] withEvent:nil]; 

    if (treffer == yourvideoplayerview) return YES; 
    return NO; 
} 
0

另一種簡單的選擇是把一隻看不見的大按鈕,將在影片播放器視圖。

0

你可能會有兩個識別器打架。你可以從你父控制器添加一個識別器,符合<UIGestureRecogniserDelegate>,爲自己設定爲手勢識別器的委託和實施:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

所以他們都可以快樂地一起玩。