J'essaye de faire ceci: Il y a une vue qui a déjà été tournée à une certaine valeur, disons 15 degrés.Comment continuer à faire pivoter une vue avec un CAKeyFrameAnimation?
Imaginez une vue pivotée de 15 degrés.
Ensuite, je sais seulement que je veux ce point de vue de tourner à partir de son rotation actuelle à 40 degrés. Imaginez comment cette vue pivote maintenant de 15 à 40 degrés.
Pour la pratique, je veux le faire avec CAKeyFrameAnimation. Mais la chose est, tout ce que je peux faire là-bas est de spécifier avec précision où d'où. Il n'y a pas d'option "ramasser l'état actuel" comme les animations UIView ont, non? Comment pourrais-je y aller?
De plus, je veux toujours spécifier 3 images-clés pour cette rotation, quelle que soit la quantité de rotation nécessaire.
Imaginez ce point de vue tourne de 15 à 40 degrés, en utilisant 3 images clés pour le faire
Mais un autre gros problème: Il peut arriver, qu'une autre animation doit lancer avec une cible différente. disons qu'une vue est actuellement en rotation de 20 à 100 degrés, et juste quelque part entre l'animation une nouvelle animation est lancée et veut que cette vue passe à 15 degrés. Avec les animations UIView, c'est simple. Comment faire cela avec CAKeyFrameAnimation?
Fondamentalement, je veux de se comporter comme des animations UIView qui ramassent l'état actuel;)
CALayer* theLayer = rotatedView.layer;
CAKeyframeAnimation* animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.duration = 2;
animation.repeatCount = 1;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
animation.values = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:(10.0/180.0) * M_PI],
[NSNumber numberWithFloat:(20.0/180.0) * M_PI],
[NSNumber numberWithFloat:(30.0/180.0) * M_PI], nil];
[theLayer addAnimation:animation forKey:@"transform.rotation.z"];
J'ai ajouté un commentaire là ... pas vraiment clair;) – openfrog