J'ai une animation de base de l'iPhone. Est-il possible que je puisse "mettre en pause" l'animation afin que la position de la vue soit maintenue? Je suppose qu'une manière de faire ceci serait de faire "compléter" l'animation au lieu d'appeler "supprimer" dessus, comment ferais-je cela?Existe-t-il un moyen de suspendre une CABasicAnimation?
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2];
rotationAnimation.duration = 100;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = HUGE_VALF;
rotationAnimation.removedOnCompletion = NO;
rotationAnimation.fillMode = kCAFillModeForwards;
[myView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
Cela fonctionne très bien pour moi, cependant, quand je suis dans un état en pause, et faire pivoter mon appareil, je perds toute capacité à interagir avec l'application. Il n'a pas réellement planté, mais il semble "gelé". Y a-t-il un conflit possible avec "willAnimateRotationToInterfaceOrientation"? – YoCoh
@YoCoh, il peut effectivement mettre en pause aussi des animations de rotation standard pour une vue, et comme pendant les animations l'interaction utilisateur peut être désactivée (c'est probablement le cas) et l'animation standard ne se termine pas avec l'UI bloquée. pas sûr comment contourner le problème – Vladimir
http://ronnqvi.st/controlling-animation-timing/ explique comment ce code fonctionne –