Encuentra las coorderadas de final / final que UISwipeGestureRecognizer

Puedo encontrar las coorderadas iniciales de dónde comienza un golpe haciendo lo siguiente

- (void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer { CGPoint point = [recognizer locationInView:[self view]]; NSLog(@"Swipe up - start location: %f,%f", point.x, point.y); } 

¿Es posible encontrar las coorderadas donde finalizó el golpe? Miré en los documentos y no se menciona. ¿Hay algo de trabajo para esto?

Muchas gracias codigo

Solutions Collecting From Web of "Encuentra las coorderadas de final / final que UISwipeGestureRecognizer"

Necesita examinar la propiedad de estado del reconocimiento de gestos.

 - (void)swipe:(UISwipeGestureRecognizer *)recognizer { CGPoint point = [recognizer locationInView:[recognizer view]]; if (recognizer.state == UIGestureRecognizerStateBegan) NSLog(@"began: %@", NSStringFromCGPoint(point)); else if (recognizer.state == UIGestureRecognizerStateEnded) NSLog(@"ended: %@", NSStringFromCGPoint(point)); } 

Necesita examinar la propiedad de estado del reconocedor de gestos.

ADVERTENCIA

Es incorrecto porque el gesto de deslizar genera UIGestureRecognizerStateEnded evento UIGestureRecognizerStateEnded .

La única manera que encontré de cómo resolver este problema es usar touchesBegan: Funciona solo para la vista actual, por lo que, además, debo pasar toca, por ejemplo, las vistas principales.

 CGPoint pt = [recognizer locationOfTouch:0 inView:view]; 

Creo que esto le dará las coorderadas x, y originales del toque que inició el gesto.

Sí tu puedes. UISwipeGestureRecognizer es una subclass de UIGestureRecognizer . Y ahí tienes el método: - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

Para más información lea esta documentation.

Hay un bonito tutorial sobre el reconocimiento de gestos.
Véalo, esto le será de utilidad: enlace