2011-08-25 194 views
10

是否可以从[UIPanGestureRecognizer translationInView]获取绝对触摸坐标?我正在开发一款iPad应用程序,并且一直在寻找很多来获取UIPanGestureRecognizer的触摸坐标值!从UIPanGestureRecognizer触摸坐标

我也尝试使用我们从transaltionInView获取值抵消,但我真的不能够理解它背后的数学......

任何建议家伙?

拉维

回答

17

translationInView是一个手势的增量变化。如果将手指向左侧移动20点,则会得到(-20.0, 0.0),从这个意义上说,它已经是“绝对的”。

你可能的意思是你想要locationInView,它相对于通过参数传递的视图,即使所述视图不是识别事件的视图。通常情况下,您将交付视图控制器的视图,或将处理该事件的视图,或者对您的实现更有意义的子视图。

而且,要记住,如果你需要真正的绝对的,可以用手nil通过参数,并返回其相对于窗口(又名“绝对”)

而且,如果您需要使用其他视图执行逻辑,可以使用UIView实例方法将坐标从一个视图转换为另一个视图:convertRect:fromView:convertRect:toView:convertPoint:fromView:,convertPoint:toView:。这些方法也接受nil作为视图参数来表示窗口的“绝对”。

+0

太棒了!我完全错过了这些手势源自UIGestureRecognizer的观点!再一次,非常感谢! – Ravi

+3

哦顺便说一句,locationInView是我正在寻找... – Ravi

+4

@Can根据文档'translationInView:'给出的总运动,而不是三角洲运动。 –

0

下面是一个更简单的方法:

gesture.locationInView(myView) 

返回由接收作为CGPoint表示的手势的给定视图计算作为位置的点。

+0

您能详细说明一下它的作用,以及它与OP已经尝试的不同吗?它会返回一个CGPoint吗? – sgress454

+0

编辑了这个东西 – Esqarrouth