2008-10-28 4 views

Répondre

20

La façon la plus simple de le faire est d'utiliser la propriété transform de la couche:

float angle = M_PI; //rotate 180°, or 1 π radians 
layer.transform = CATransform3DMakeRotation(angle, 0, 0.0, 1.0); 

Le premier argument à la fonction CATransform3DMakeRotation est le montant à rotation, en radians. Les trois suivants décrivent le vecteur autour duquel tourner. Ceci décrit un vecteur dans l'axe z, si bien perpendiculaire à l'écran. Cela fera pivoter la couche de sorte qu'elle soit à l'envers.

1

Vous utiliseriez la propriété de transformation de la vue. Il y a quelques exemples de code pour faire tourner la vue dans l'iPhone OS Guide de programmation, sous Launching in Landscape Mode

0

Vous devriez regarder exemple d'Apple MoveMe pour savoir comment déplacer une couche à base tactile. Il applique également certaines transformations de mise à l'échelle comme vous le faites, ce qui devrait servir d'exemple raisonnable pour appliquer des transformations de rotation.

11

je fini par faire comme ceci:

CGAffineTransform transform = CGAffineTransformMakeRotation(angle); 
[[self viewWithTag:999] setTransform:transform]; 

Notez que l'angle est en radians.

+0

Dans votre solution, vous modifiez la transformation de la vue, pas la couche. Juste un fyi. –

+0

45 degrés = M_PI/4, 90 degrés = M_PI/2 http://math.rice.edu/~pcmi/sphere/drg_txt.html –

Questions connexes