UIPanGestureRecognizer的准确起始位置?

时间:2014-07-05 16:02:28

标签: ios cocoa-touch uipangesturerecognizer

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

问题在于,当首次使用状态UIGestureRecognizerStateBegan调用手势处理程序时,手指已经移动了几个像素,因此[UIPanGestureRecognizer locationInView:]返回该点,这不是手势真正开始的位置。这是有道理的,因为它只能在几个像素的运动后识别出一个平底锅。但是,我需要手势的绝对开始,而不是手势首次被识别后的位置。

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

1 个答案:

答案 0 :(得分:0)

UIGestureRecognizerDelegate协议提供方法gestureRecognizerShouldBegin:gestureRecognizer:shouldReceiveTouch:,可帮助您在平移转换为州UIPanGestureRecognizerStateBegan之前评估触摸