È in corso un'animazione UIView che ho bisogno di cancellare nella mia app iOS. Ho provato questo:Annullamento di UIView Animation - self.view.layer removeAllAnimations non funzionante
[self.view.layer removeAllAnimations];
Ma non ha funzionato. L'animazione continuò. Qui è il mio codice di animazione:
[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");
}];
Qualcuno ha qualche idea sul perché non funziona?
si aggiunge che l'animazione a Recognizer vista, quindi, si dovrà rimuovere dal livello di quello stesso punto di vista. Quindi invece di [self.view.layer removeAllAnimations] potresti voler [recognizer.view.layer removeAllAnimations]. – Till
Ciao. Grazie - sta succedendo qualcosa, ma questo introduce un altro problema. Porta l'animazione alla fine all'istante fermandolo lì. Voglio che si fermi nella sua posizione attuale - la posizione in cui si trova quando voglio interrompere l'animazione - non saltare alla fine. Questo può essere fatto in questo modo? –
Controlla 'recognizer.view.layer.presentationLayer'. Avrà la trasformazione centrale, ma lo imposterà al livello corrente: 'recognizer.view.layer.transform = recognizer.view.layer.presentationLayer.transform;' ... Potrebbe essere necessario più lavoro. – Mazyod