2011-08-25 137 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