2012-03-12 13 views
16
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; 
[self addGestureRecognizer:panRecognizer]; 

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture translationInView:self].x); 
} 

El código anterior se registrará la posición relativa de mi bandeja actual, pero ¿cómo puedo obtener la posición absoluta de la opinión de que estoy?ios UIPanGestureRecognizer posición del puntero

Simplemente estoy queriendo deslizar un UIImageView a donde sea que esté el dedo del usuario.

+0

¿Qué quiere decir por * "la posición absoluta de la opinión de que estoy en" *? – sch

Respuesta

27

translationInView le da la traducción de panorámica (cuánto ha cambiado x) y no la posición de la panorámica en la vista (el valor de x). Si necesita la posición de la bandeja, debe usar el método locationInView.

Puede encontrar las coordenadas en relación a la vista de la siguiente manera:

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self].x); 
} 

o relativamente a la supervista:

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self.superview].x); 
} 

o relativamente a la ventana:

- (void)pan:(UIPanGestureRecognizer *)gesture { 
    NSLog(@"%f", [gesture locationInView:self.window].x); 
} 
+7

¿No es mejor usar la propiedad 'view' de UIGestureRecognizer' en lugar de' self'? Te permite mover el reconocedor de gestos sin romper cosas. También para la ubicación de la ventana, es suficiente pasar 'nil'. –

0

I piense de una manera simple de algo como esto es obtener la xy la del toque y rastrearla, una vez que tiene 2 puntos (s) ay X: 230 Y: 122) configura el desplazamiento de la vista Uiscroll en x e y.

No estoy seguro exactamente cómo llegué a esta respuesta ... Si no es útil, no me votar abajo todavía soy un novato D:

0

Swift

ubicación relativa (CGPoint) de su gesto para self.view:

print(gesture.locationInView(self.view)) 
Cuestiones relacionadas