2011-04-14 52 views
1

我有一個包含UIImageView和UILabel的UIViews的UIScrollView。當其中一個圖像是單擊時,將顯示帶有單獨文本的文本框。但是現在我也想實現放大和滾動圖像的可能性(在ScrollView中顯示帶有圖像的UIImageView,實際上這不是問題)。但我需要知道,當圖片是雙擊。UIScrollView上的單擊和雙擊識別

我目前使用帶有NumberOfTapsRequires:1的UITapGestureRecognizer來顯示包含文本的Box。但第二個需要觸摸2的UITapGestureRecognizer不起作用,因爲第一個識別器是之前拍攝的,並在整個屏幕上顯示該框。

也許你有一個想法,如何實現這一點。這將是很好,如果它是一個UITapGesture的解決方案:)

我已經試過了現在這個樣子,但它仍然不能正常工作:

UITapGestureRecognizer *gR; 
gR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ScrollView_onTap:)]; 
[gR setNumberOfTapsRequired:1]; 
[tmpPage addGestureRecognizer:gR]; 

gR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFunctionMenu:)]; 
[gR setNumberOfTapsRequired:2]; 
[tmpPage addGestureRecognizer:gR]; 

[gR release]; 
gR = nil; 

第二個識別器只是偶爾出手,但主要是第一個。有任何想法嗎?

回答

1

@Kevin我想​​你想定義numberOfTapsRequired而不是numberOfTouchesRequired兩者都是不同的東西。檢查相同的文檔更清晰

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITapGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/cl/UITapGestureRecognizer

+0

哦,其實我的意思numberOfTapsRequired,糾正它在我的問題。但感謝鏈接,我真的不知道兩者之間的區別。 – 2011-04-14 09:44:02

4

一個解決辦法可能是使用下面的代碼片段,其中requireGestureRecognizerToFail會做的伎倆爲您提供:

UITapGestureRecognizer *singleTapGR, *doubleTapGR; 
singleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self 
    action:@selector(mySingleTapHandler)]; 
doubleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self 
    action:@selector(myDoubleTapHandler)]; 
doubleTapGR.numberOfTapsRequired = 2; 
[singleTapGR requireGestureRecognizerToFail:doubleTapGR]; 
[view addGestureRecognizer:singleTapGR]; 
[view addGestureRecognizer:doubleTapGR];