ios - UIPanGestureRecognizer 的准确起始位置?

标签 ios cocoa-touch uipangesturerecognizer

我正在使用 UIPanGestureRecogniser实现拖放。当拖动开始时,我需要识别被拖动的对象。但是对象相对较小。如果用户没有在对象的中心点击对象,它就不会被拖动。

问题是当手势处理程序第一次调用状态为 UIGestureRecognizerStateBegan ,手指已经移动了几个像素,所以[UIPanGestureRecognizer locationInView:]返回那个点,这不是手势真正开始的地方。这是有道理的,因为它只能在移动几个像素后才能识别平移。但是,我需要手势的绝对开始,而不是手势首先被识别后的位置。

我在想,也许我还需要实现一个轻击手势识别器,纯粹是为了捕捉第一次触摸。但这似乎是一个不寻常的要求。没有其他方法可以从平移手势识别器中获得第一次触摸吗?

最佳答案

UIGestureRecognizerDelegate协议(protocol)提供方法gestureRecognizerShouldBegin:gestureRecognizer:shouldReceiveTouch:这可以帮助您在平移转换到状态 UIPanGestureRecognizerStateBegan 之前评估触摸

关于ios - UIPanGestureRecognizer 的准确起始位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588196/

相关文章:

iphone - SQLite Group By 和 Order By 不起作用

ios - 前缀 header 的 Xcode 路径 - 新目标

ios - TableView 的一种方法,仅在第一次显示 View 时调用

ios - 在 iOS 中制作一个调用电话号码的按钮

ios - UIPanGestureRecognizer 不触发 Action

ios - 在某些情况下使 superview 响应 subViews Pan Gesture

ios - 使用 NSLocale 通过 Xcode 6.1 翻译语言代码

ios - 使 UIPanGesture 跟随线条

ios - 如何切换 iAd 可见性 spritekit

ios - 如何从 Pan 手势触发 Segue?