Me gustaría manejar el gesto de rotación en mi aplicación de iPhone y rotar un imageView durante esto. Al final del gesto, me gustaría rotar a una posición fija el imageView. Entonces, es decir. si giro la imagen vista de 0 radianes a M_PI/2 radianes, pero en algún lugar a mitad de camino termino con el gesto. Después del final me gustaría probar el ángulo y si cerca de M_PI/2 luego otra vez en M_PI/2 de otro modo a 0.
Aquí está mi código de cómo me trató de hacer esto:UIGestureRecognizer terminando
puedo crear y añadir el reconocedor a mi vista.
UIGestureRecognizer *recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognized:)];
recognizer.delegate = self;
[self addGestureRecognizer:recognizer];
[recognizer release];
métodos Delegado:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (_imageView) {
return YES;
}
return NO;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Gesto método reconocido:
- (void)gestureRecognized:(UIRotationGestureRecognizer *)recognizer {
_imageView.transform = CGAffineTransformMakeRotation(recognizer.rotation);
}
Estos métodos están trabajando, pero aquí está el método de cómo me trató de conseguir el final del gesto. Esto no funciona:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"gesture end");
}
También con la transformación tengo un pequeño problema. A veces regresa al 0 radianes.
Cualquier sugerencia es bienvenida. ¡Gracias!
No funciona. ¿Sabes por qué? Todavía no recibe el final. –
Así que ahora se llama al método, pero no cuando lo suelto, se llama después de que inicie la rotación –
. Por lo tanto, no se llama al final. ¿Alguna pista? –