我正在使用 UIPanGestureRecogniser
实现拖放。当拖动开始时,我需要识别被拖动的对象。但是对象相对较小。如果用户没有在对象的中心点击对象,它就不会被拖动。
问题是当手势处理程序第一次调用状态为 UIGestureRecognizerStateBegan
,手指已经移动了几个像素,所以[UIPanGestureRecognizer locationInView:]
返回那个点,这不是手势真正开始的地方。这是有道理的,因为它只能在移动几个像素后才能识别平移。但是,我需要手势的绝对开始,而不是手势首先被识别后的位置。
我在想,也许我还需要实现一个轻击手势识别器,纯粹是为了捕捉第一次触摸。但这似乎是一个不寻常的要求。没有其他方法可以从平移手势识别器中获得第一次触摸吗?
最佳答案
UIGestureRecognizerDelegate
协议(protocol)提供方法gestureRecognizerShouldBegin:
和 gestureRecognizer:shouldReceiveTouch:
这可以帮助您在平移转换到状态 UIPanGestureRecognizerStateBegan
之前评估触摸
关于ios - UIPanGestureRecognizer 的准确起始位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588196/