【问题标题】:Drag Gesture Recognizer interfere with swipe Gesture Recognizer拖动手势识别器干扰滑动手势识别器
【发布时间】:2014-02-21 15:09:30
【问题描述】:

我对手势识别器有疑问。我的视图中有两个手势识别器,一个添加到背景超级视图以滑动更改背景颜色,另一个添加到可以拖动的子视图。

问题是拖动手势干扰了滑动。当我拖动视图时,在某些情况下,拖动操作会被识别为滑动并触发滑动操作。我不想要这个,我只想在完成这个拖动操作后可以识别滑动。当我快速拖动子视图时,这种情况更常见。每次拖动时,都会触发滑动操作。

【问题讨论】:

    标签: ios uigesturerecognizer


    【解决方案1】:

    您需要使用requireGestureRecognizerToFail: 设置较小的UIGestureRecognizer,并传递您想要对其重要的识别器。

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

    【讨论】:

    • 我觉得这个方法很好,应该可以,但是我用你的方法,发现滑动手势,指的是你的self.gestureRecognizer根本无法识别滑动。
    • 听起来您的子视图正在消耗屏幕上的所有手势事件。您可能必须为您的子视图手势识别器设置一个委托并覆盖委托函数以设置它们何时识别器应该识别事件。
    • 酷,我用了这个方法,将视图控制器设置为滑动手势识别器委托,并为拖动手势识别器添加一个通知,当拖动完成时,我发布一个通知,设置标志 bool为 YES,则滑动手势识别器的委托方法可以移除该块。你怎么看?很酷的解决方案,谢谢
    猜你喜欢
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2016-08-04
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多