2009-12-02 5 views
1

Je vais me pencher sur Core Animation plus en détail mais pour l'instant je cherche juste à faire pivoter une vue selon un angle spécifié. Je me demandais si quelqu'un pourrait me diriger vers un code ou fournir un exemple simple comme une recherche rapide en ligne n'a pas tiré toute chose utile!Rotation simple de l'animation Core Core

Fondamentalement, je dois définir un point d'ancrage, puis faire pivoter ma vue d'un certain angle. Ensuite, à partir de là, je peux définir un autre angle et il va animer doucement le nouvel angle.

Merci pour votre aide!

Répondre

9

Essayez quelque chose comme ce qui suit (non testé depuis que je suis loin de mon bureau):

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:5.0]; 

// Modify any animatable properties 
myImage.transform = CGAffineTransformMakeRotation(90 * M_PI/180.0); 

[UIView commitAnimations]; 

Cela tournera votre UIImageView (myImage) 90 degrés sur 5 secondes, en utilisant le centre de l'image comme point de rotation.

Si vous souhaitez effectuer une rotation autour d'un point arbitraire, vous pouvez modifier le point d'ancrage du calque (myImage.layer.anchorPoint). La valeur par défaut est 0,5,0,5, ce qui conduit au milieu du contrôle. Reportez-vous à la documentation de Core Animation sur comment tout cela fonctionne.

+0

Merci, fait le travail parfaitement! J'ai remarqué que si j'anime de nouveau la même vue mais à mi-chemin d'une animation de rotation en cours, elle ne reprend pas où elle est et commence à bouger, elle saute au point final de l'animation en cours et commence la nouvelle animation. Une idée pourquoi? –

+0

Avez-vous compris? Réponse courte, attendez que l'animateur actuel termine avant de commencer le suivant. Voir http://stackoverflow.com/questions/2728516/iphone-detect-the-end-of-the-animation/2767229#2767229 – brindy

+1

Peut-être setAnimationBeginsFromCurrentState: YES sur la vue? –