Tengo una Animación UIView activada que necesito cancelar en mi aplicación iOS. He intentado esto:Cancelando UIView Animation - self.view.layer removeAllAnimations no funciona
[self.view.layer removeAllAnimations];
Pero no funcionó. La animación continuó. Aquí está mi código de animación:
[UIView animateWithDuration:1.4 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
recognizer.view.transform = CGAffineTransformTranslate(recognizer.view.transform, translation.x, translation.y);
} completion:^(BOOL finished) {
NSLog(@"completed animation, now do whatever");
}];
¿Alguien tiene alguna idea de por qué no está funcionando?
está agregando que la animación al reconocedor de vista, por lo tanto, tendrá que sacarlo de la capa de ese mismo punto de vista. Por lo tanto, en lugar de [self.view.layer removeAllAnimations], es posible que desee [recognizer.view.layer removeAllAnimations]. – Till
Hola. Gracias - algo está sucediendo ahora, pero eso introduce otro problema. Lleva la animación hasta el final deteniéndola instantáneamente allí. Quiero que se detenga en su posición actual, la posición en la que está cuando quiero detener la animación, no saltar al final. ¿Se puede hacer esto así? –
Echa un vistazo a 'recognizer.view.layer.presentationLayer'. Tendrá la transformación del medio, simplemente ajústelo a la capa actual: 'recognizer.view.layer.transform = recognizer.view.layer.presentationLayer.transform;' ... Podría necesitar más trabajo. – Mazyod