ce que je veux faire:iPhone, Comment faire pivoter un UIImageView autour d'un point en utilisant Core Animation et CATransform3D?
(1) (2)
| /
| /
|/
|/
|/
*
(3)
Je souhaite déplacer un UIImageView représenté par une broche d'horloge (largeur: 9px, 73px la hauteur) de la position (1) à la position (2) autour du point (3) qui est une extrémité de l'image. J'ai essayé de définir le point d'ancrage sur (0,0) ou de positionner le centre de l'image sur le point (517,177) sur l'écran de l'iPad, mais je n'ai pas réussi:
Ma macro degreeToRadians est définie de la manière suivante:
#define degreesToRadian(x) (M_PI * (x)/180.0)
/* kmPointer est le UIImageView */
NSValue *value = nil;
CABasicAnimation *animation = nil;
CATransform3D transform;
kmPointer.layer.anchorPoint = CGPointMake(0, 0);
[kmPointer.layer removeAllAnimations];
animation = [CABasicAnimation animationWithKeyPath:@"transform"];
transform = CATransform3DMakeRotation(degreesToRadian(30), 0.0f, 0.0f, 1.0f);
value = [NSValue valueWithCATransform3D:transform];
[animation setToValue:value];
transform = CATransform3DMakeRotation(0.0f, 0.0f, 0.0f, 1.0f);
value = [NSValue valueWithCATransform3D:transform];
[animation setFromValue:value];
[animation setAutoreverses:NO];
[animation setDuration:1.0f];
[animation setRepeatCount:1];
[kmPointer.layer addAnimation:animation forKey:nil];
Comment puis-je faire le pointeur de tourner autour de l'étoile marquée par (3)?
Etes-vous sûr que le point d'ancrage est (0,0)? Je pense que c'est en haut à gauche, pas en bas à gauche. – jtbandes
J'ai lu toutes ces choses http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Layers.html J'ai essayé toutes les combinaisons, (0,5, 0,0), (0,0, .5), (1, 0), (1, 1) et je n'obtiens toujours pas l'effet désiré. Lorsque je mets le point d'ancrage (1,1) mon pointeur monte sur l'écran de 50 pixels et tourne à droite autour du nouveau point (3). – andreiursan