您将如何设置手势识别器以便让 UISwipeGestureRecognizer 和 UIPanGestureRecognizer 同时工作?这样一来,如果您快速触摸并移动(快速滑动),它会将手势检测为滑动,但如果您触摸然后移动(触摸和移动之间的短暂延迟),它会将其检测为平移?
我已经尝试了 requireGestureRecognizerToFail 的各种排列,但这并没有完全帮助,它使得如果 SwipeGesture 被留下,那么我的平移手势将向上、向下和向右工作,但任何移动左侧是通过滑动手势检测到的。
最佳答案
您需要将两个 UIGestureRecognizer
的委托(delegate)之一设置为一个有意义的对象(可能是 self
),然后监听并返回 YES
对于这个 method :
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:
(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
当 gestureRecognizer
或 otherGestureRecognizer
对手势的识别会阻止其他手势识别器识别其手势时,将调用此方法。请注意,返回 YES
保证允许同时识别;另一方面,返回 NO
不能保证阻止同时识别,因为其他手势识别器的委托(delegate)可能返回 YES
。
关于iphone - 如何让 UISwipeGestureRecognizer 和 UIPanGestureRecognizer 在同一个 View 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111828/