0
我有一個關於手勢識別器的問題。在我看來,我有兩個手勢識別器,一個添加到背景超級視圖中以滑動以更改背景顏色,另一個添加到可拖動的子視圖。拖動手勢識別器干擾滑動手勢識別器
問題是拖動手勢受到滑動干擾。當我拖動視圖時,在某些情況下,拖動操作將被識別爲輕掃並觸發滑動操作。我不想要這個,我只是想在完成這個拖動操作後才能識別刷卡。當我快速拖動子視圖時,這種情況更常見。每次拖動時,都會觸發滑動操作。
我有一個關於手勢識別器的問題。在我看來,我有兩個手勢識別器,一個添加到背景超級視圖中以滑動以更改背景顏色,另一個添加到可拖動的子視圖。拖動手勢識別器干擾滑動手勢識別器
問題是拖動手勢受到滑動干擾。當我拖動視圖時,在某些情況下,拖動操作將被識別爲輕掃並觸發滑動操作。我不想要這個,我只是想在完成這個拖動操作後才能識別刷卡。當我快速拖動子視圖時,這種情況更常見。每次拖動時,都會觸發滑動操作。
您需要設置較小的UIGestureRecognizer
與requireGestureRecognizerToFail:
並通過您想要對其重要的識別器。
UIView *subview = ....
[self addSubview:subview];
[self.gestureRecognizer requireGestureRecognizerToFail:subview.gestureRecognizer];
我覺得這是一個好方法,應該工作,但是我用你的方法,並發現輕掃手勢,這是指你的self.gestureRecognizer不能識別刷卡的。 – Jindulys
這聽起來像你的子視圖消耗屏幕上的所有手勢事件。您可能必須爲您的子視圖gesturerecognizer設置委託,並覆蓋委派功能以設置識別器應識別事件的時間。 – Putz1103
很酷,我使用這種方法,將視圖控制器設置爲滑動gestureRecognizer委託,併爲拖動手勢識別器添加通知,當拖動完成時,我發佈通知,將標記布爾設置爲YES,然後滑動手勢識別器的委託方法可以刪除該塊。你如何看待這個?很酷的解決方案,謝謝 – Jindulys