从[UIPanGestureRecognizer translationInView]中获取绝对触摸坐标是否可能? 我正在开发iPad应用程序,一直在努力寻找从UIPanGestureRecognizer中获取触摸坐标值!
我还尝试使用从translationInView获得的值进行偏移,但我并不真正理解其背后的数学原理...
有任何建议吗?
Ravi
从[UIPanGestureRecognizer translationInView]中获取绝对触摸坐标是否可能? 我正在开发iPad应用程序,一直在努力寻找从UIPanGestureRecognizer中获取触摸坐标值!
我还尝试使用从translationInView获得的值进行偏移,但我并不真正理解其背后的数学原理...
有任何建议吗?
Ravi
translationInView
是手势中的增量变化。如果您将手指向左移动20个点,您将得到(-20.0, 0.0)
,在这种意义上它已经是“绝对”的了。
您可能想要的是相对于传入的视图的 locationInView
,即使该视图不是识别事件的视图。通常,您会将视图控制器的视图或将处理事件的视图,或者在您的实现中更有意义的子视图作为参数传递。
另外,请注意,如果您需要真正的绝对位置,您可以通过将 nil
作为参数传递,返回相对于窗口(即“绝对”)的位置。
如果您需要与其他视图进行逻辑操作,您可以使用 UIView
实例方法将坐标从一个视图转换为另一个视图: convertRect:fromView:
, convertRect:toView:
, convertPoint:fromView:
, convertPoint:toView:
。这些方法也接受 nil
作为视图参数,意味着相对于窗口的“绝对”位置。
这里有一个更简单的方法:
gesture.locationInView(myView)
返回一个 CGPoint 类型的点,表示接收者所代表的手势在给定视图中的位置。
CGPoint
值? - sgress454
translationInView:
返回的是总移动量而非增量移动量。 - Jonathan.