2011-08-25 11 views
10

È possibile ottenere le coordinate di tocco assoluto da [UIPanGestureRecognizer translationInView]? Sto lavorando su un'app per iPad e ho cercato molto per ottenere i valori delle coordinate tattili da UIPanGestureRecognizer!Touch Coordinate da UIPanGestureRecognizer

Ho anche provato compensazione utilizzando i valori che otteniamo da transaltionInView ma io non sono davvero in grado di comprendere la matematica dietro di esso ...

Eventuali suggerimenti ragazzi?

Ravi

risposta

17

translationInView è il cambiamento del delta di un gesto. Se sposti il ​​dito verso sinistra di 20 punti, otterrai (-20.0, 0.0), è già "assoluto" in questo senso.

Ciò che si intende probabilmente è che si desidera il locationInView, relativo alla vista passata attraverso l'argomento, anche se detta vista non è quella che riconosce gli eventi. In genere, si passa la visualizzazione del controller della vista o la vista che si prenderà cura dell'evento o la sottoview che ha più senso per l'implementazione.

Inoltre, tenere a mente, se è necessario il vero in assoluto, è possibile consegnare nil attraverso gli argomenti, e restituisce rispetto alla finestra (aka. "Assoluto")

E, se avete bisogno di fare la logica con altre viste, è possibile convertire le coordinate da una vista a un'altra con i metodi di istanza UIView: convertRect:fromView:, convertRect:toView:, convertPoint:fromView:, convertPoint:toView:. Questi metodi accettano anche nil come argomento della vista per indicare "assoluto" per la finestra.

+0

Fantastico! Ho completamente perso il punto che questi gesti sono derivati ​​da UIGestureRecognizer! Ancora una volta, grazie mille! – Ravi

+3

Oh BTW, locationInView era quello che stavo cercando ... – Ravi

+4

@Can Secondo la documentazione 'translationInView:' fornisce il movimento totale, non il movimento delta. –

0

Ecco un modo più semplice:

gesture.locationInView(myView) 

restituisce il punto calcolato come la posizione in una determinata vista del gesto rappresentato dal ricevere in CGPoint.

+0

Puoi approfondire un po 'cosa fa e come è diverso da ciò che l'OP ha già provato? Restituisce un 'CGPoint'? – sgress454

+0

modificato la cosa – Esqarrouth