2011-06-20 36 views
4

此前,I asked about how to capture any touch input on an MPMoviePlayerController's view when the MPMovieControlStyle is set to MPMovieControlStyleNone。有人建議我可以使用UIGestureRecognizer來做到這一點。如何在控件隱藏時僅捕獲MPMoviePlayerController視圖上的單擊/點擊?

我能夠以這種方式使用手勢識別器捕獲屏幕上的雙擊,但不是單擊。我用這個代碼如下:

///**********/// 
singleTapGestureRecognizer = 
    [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClickOnMediaView:)]; 
singleTapGestureRecognizer.numberOfTapsRequired = 1; 
[self.moviePlayer.view addGestureRecognizer:singleTapGestureRecognizer]; 
[singleTapGestureRecognizer release]; 
///**********/// 

爲什麼我無法捕捉到使用該代碼的MPMoviePlayerController的觀點,單個輕拍?關於它如何處理單擊是否有特別之處?

+1

http://stackoverflow.com/questions/6384607/how-to-get-touch-click-on-a-mpmovieplayercontroller-view-when-mpmoviecontrolstyle – Till

+0

@Brad可能的欺騙,這真的是同樣的問題,雖然?這看起來像是我的後續行動。 –

+0

@邁克爾 - 我相信在回顧最初的問題之後,這基本上是一樣的。這也可能是這裏描述的一個案例:http://meta.stackexchange.com/questions/95833/how-best-to-respond-to-i-want-a-better-answer-duplicates,其中的答案在第一個問題是他們想要做的事情不可接受的。我會看看我是否可以將其編輯爲一個明確的問題。 –

回答

0

我知道這是一個老問題,但這裏有一個解決方案,如果有人需要這個。 要在同一視圖上處理單擊和雙擊,單擊分辨識別器必須等待雙擊識別器失敗。像這樣:

UITapGestureRecognizer* doubleTapRecon = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap)]; 
[doubleTapRecon setNumberOfTapsRequired:2]; 
[doubleTapRecon setDelegate:self]; 
[self.view addGestureRecognizer:doubleTapRecon]; 

UITapGestureRecognizer* singleTapRecon = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap)]; 
[singleTapRecon setNumberOfTapsRequired:1]; 
[singleTapRecon requireGestureRecognizerToFail:doubleTapRecon]; 
[singleTapRecon setDelegate:self]; 
[self.view addGestureRecognizer:singleTapRecon]; 

請注意,如果你不使用ARC,你必須照顧內存管理。

0

沒有上面的回答將無法正常工作取得單擊手勢,你必須實行「UITapGestureRecognizerDelegate」和使用方法

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

因爲「moviePlayer」也採用點觸手勢,因此要獲得工作我們自定義單擊只有以上方法是必需的。

+0

請在UIGestureRecognizerDelegate中更正:) – matsoftware

相關問題