2014-02-21 290 views
0

我有一個關於手勢識別器的問題。在我看來,我有兩個手勢識別器,一個添加到背景超級視圖中以滑動以更改背景顏色,另一個添加到可拖動的子視圖。拖動手勢識別器干擾滑動手勢識別器

問題是拖動手勢受到滑動干擾。當我拖動視圖時,在某些情況下,拖動操作將被識別爲輕掃並觸發滑動操作。我不想要這個,我只是想在完成這個拖動操作後才能識別刷卡。當我快速拖動子視圖時,這種情況更常見。每次拖動時,都會觸發滑動操作。

回答

0

您需要設置較小的UIGestureRecognizerrequireGestureRecognizerToFail:並通過您想要對其重要的識別器。

UIView *subview = .... 
[self addSubview:subview]; 

[self.gestureRecognizer requireGestureRecognizerToFail:subview.gestureRecognizer]; 
+0

我覺得這是一個好方法,應該工作,但是我用你的方法,並發現輕掃手勢,這是指你的self.gestureRecognizer不能識別刷卡的。 – Jindulys

+0

這聽起來像你的子視圖消耗屏幕上的所有手勢事件。您可能必須爲您的子視圖gesturerecognizer設置委託,並覆蓋委派功能以設置識別器應識別事件的時間。 – Putz1103

+0

很酷,我使用這種方法,將視圖控制器設置爲滑動gestureRecognizer委託,併爲拖動手勢識別器添加通知,當拖動完成時,我發佈通知,將標記布爾設置爲YES,然後滑動手勢識別器的委託方法可以刪除該塊。你如何看待這個?很酷的解決方案,謝謝 – Jindulys