Comment arrêter la rotation d'un CALayer personnalisé sur l'iPhone?Arrêt en douceur de la rotation d'une animation de base
Ce
CATransform3D pausetransform = ((CALayer *)[layer presentationLayer]).transform;
[layer removeAllAnimations];
layer.transform = pausetransform;
arrête l'animation, puis tourne immédiatement la couche arrière un peu. Probablement parce que, après la définition de la valeur Pausetransform, l'animation continue pendant un petit moment.
La définition de la valeur layer.transform dans la méthode de délégation - (void) animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)finishednormally
de l'animation affiche brièvement la couche dans la position de départ de l'animation avant qu'elle ne pivote vers la position correcte.
J'utilise un CABasicAnimation pour faire pivoter la couche de 360 ° une fois. Lorsque je supprime l'animation (à l'aide de removeAllAnimations ou removeAnimationForKey), la couche revient à la rotation dans layer.transform. Mais je ne trouve pas de moyen d'obtenir la rotation de la couche au moment précis où l'animation s'arrête. Je ne peux pas non plus régler la rotation de la couche au moment précis où l'animation s'arrête. Je ne peux le faire juste avant ou juste après, ce qui entraîne des problèmes graphiques. Existe-t-il une autre sous-classe de CAAnimation qui gère mieux cela? – kareman