簡體   English   中英

在同一視圖上點擊並滑動手勢

[英]Tap and swipe gesture on same view

我有兩個手勢點擊並在同一視圖上滑動。 每當用戶嘗試滑動視圖時,tapGesture都會被識別。 我想在這種情況下忽略水龍頭。 怎么做。 下面是代碼。 同時識別器不是這種情況,因為不會調用滑動手勢。

     UITapGestureRecognizer *gest = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(itemSelected:)];
     gest.numberOfTapsRequired = 1
     [messageView addGestureRecognizer:gest];

    UISwipeGestureRecognizer *swipeGest = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(itemSwiped:)];
    swipeGest.direction =  UISwipeGestureRecognizerDirectionUp ;
    [messageView addGestureRecognizer:swipeGest];

雖然建議的答案很好,但更簡單的解決方案可能是要求使用- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer來要求輕擊手勢等待滑動手勢失敗。 此方法“與另一個手勢識別器建立關系,從而延遲接收者從UIGestureRecognizerStatePossible過渡出來。” 在您的情況下,代碼如下所示:

[gest requireGestureRecognizerToFail:swipeGest];

您可以在此處找到更多信息。

確保在處理程序itemSelecteditemSwiped ,正在檢查UIGestureRecognizerstate

可能的狀態包括: possiblebeganchangedendedcancelledfailed

您可能應該在尋找ended狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM