CATransaction achèvement d'être appelé immédiatement
Je suis en train d'exécuter un achèvement-bloc après mon CAAnimation a fini. Cependant, il semble que l'animation bloc est appelé avant que mon animation est terminée. L'animation se passe correctement.
[CATransaction begin];
[self.view.layer addAnimation:self.dropAndBounceAnimation forKey:@"appearance"];
[CATransaction setCompletionBlock:completionBlock];
[CATransaction commit];
La dropAndBounceAnimation est un CAKeyFrameAnimation sur la position on.y, avec une durée fixe.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr si c'est vraiment la bonne correction, mais par le réglage de la date d'achèvement, bloc avant l'ajout de l'animation de la couche, l'achèvement de bloc est toujours appelé au bon moment.
If no animations are added before the current transaction group is committed (or the completion block is set to a different value,) the block will be invoked immediately.
view.wantsLayer = YES;
Vous devez définir le bloc d'animation avant d'ajouter de l'animation.
Cela doit déclencher la fin du bloc après la fin de l'animation sur la vue.
Ici est Swift 3.0.1, Xcode 8 version:
Essayez de démarrer l'animation de manière asynchrone:
car il peut interférer avec la vue du dessin, si vous faites un peu de vue le programme d'installation avant l'appel de l'animation.