iphone - 如何让 UISwipeGestureRecognizer 和 UIPanGestureRecognizer 在同一个 View 上工作

标签 iphone objective-c uigesturerecognizer gesture-recognition

您将如何设置手势识别器以便让 UISwipeGestureRecognizerUIPanGestureRecognizer 同时工作?这样一来,如果您快速触摸并移动(快速滑动),它会将手势检测为滑动,但如果您触摸然后移动(触摸和移动之间的短暂延迟),它会将其检测为平移?

我已经尝试了 requireGestureRecognizerToFail 的各种排列,但这并没有完全帮助,它使得如果 SwipeGesture 被留下,那么我的平移手势将向上、向下和向右工作,但任何移动左侧是通过滑动手势检测到的。

最佳答案

您需要将两个 UIGestureRecognizer 的委托(delegate)之一设置为一个有意义的对象(可能是 self),然后监听并返回 YES 对于这个 method :

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
         shouldRecognizeSimultaneouslyWithGestureRecognizer:
                            (UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

gestureRecognizerotherGestureRecognizer 对手势的识别会阻止其他手势识别器识别其手势时,将调用此方法。请注意,返回 YES 保证允许同时识别;另一方面,返回 NO 不能保证阻止同时识别,因为其他手势识别器的委托(delegate)可能返回 YES

关于iphone - 如何让 UISwipeGestureRecognizer 和 UIPanGestureRecognizer 在同一个 View 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111828/

相关文章:

iphone - iOS应用保护

iphone - "InstallProhibited"从设备收到

iOS 上的 JavaScript : opening an HTML select element

ios - 等待 NSURLSessionDataTask 回来

ios - 自定义 Swift UIGestureRecognizer 不调用分配的操作

ios - iPhone蓝牙和 "Made for iPod"

objective-c - CGImageCreateWithJPEGDataProvider 线程安全与否?

ios - 如何在 iOS 7/8 的应用程序启动时获取初始设备方向?

iphone - 如果按下 subview 的按钮如何取消 UIGestureRecognizer

iphone - UIView 覆盖另一个 uiview 并传递触摸