2012-11-07 76 views
3

我在UIWebView上添加了長按手勢。但我希望UIWebView可以在識別我的長按之前處理標準的點擊事件。 (兩個手勢應該在長按 - 一個簡單的水龍頭和我的龍頭處理)。這個怎麼做?如何在UIWebView上的長按手勢創建點擊事件?

我認爲需要將Tap事件發送到UIWebView,TouchBegin。這是對的嗎?

+0

我想他們一起工作,但一個UIWebView不上長按處理單一的水龍頭。 – Dmitry

+0

SingleTapGestureRecognizer和DoubleTapGestureRecognizer根本不能在UIWebView上工作! – Dmitry

回答

2

正確的代碼:

- (void)viewDidLoad { 
    UILongPressGestureRecognizer* gesture = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)] autorelease]; 
    gesture.delegate = self; 
    [myWebView addGestureRecognizer:gesture]; 
} 

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

請參見本節UIGestureRecognizerDelegate

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html

你發現這個叫2時同時姿態工作。

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

+0

謝謝!但是我已經用'return true;'添加了這個方法,只有長時間的點擊仍然有效。我應該做什麼呢? – Dmitry

+0

請檢查此方法單點觸摸事件是否識別它們。在上面的方法中寫'NSLog();'語句。 – priyanka

+0

它不會在任何水龍頭(長水龍頭和燈杆水龍頭)上運行。我曾經使用過:' - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer應該同時識別帶有GestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer'並激活'UIGestureRecognizerDelegate'協議。 – Dmitry