Comment puis-je fiable de faire pivoter une image autour d'un point?

J'ai lu la suite, à partir de Une étape de transformation affine pour la rotation autour d'un point?:

CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
transform = CGAffineTransformRotate(transform, a);
transform = CGAffineTransformTranslate(transform,-x,-y);

Cependant, lorsque je fais ceci, les images transformées sont tous sur la carte, et rarement au dessus de l'écran.

J'ai essayé un peu de faire un système où il va placer des images; si vous exécutez une boucle et place plusieurs valeurs, une spirale apparaît. Cependant, alors que je pourrais peut-être, éventuellement, d'en démêler la relation entre une rotation d'images et les points que je voulais tourner à propos, je voulais vous demander pour la meilleure solution de "j'ai une image ici; je considère ce point à son centre, je veux qu'il soit tourné de ce montant autour de son centre, mais non autrement déplacées."

Je suis en train d'apporter des modifications à un port de http://JonathansCorner.com/ancient-clock/, et maintenant je suis en train d'essayer de placer l'aiguille des heures. Toutes les tentatives de faire de la chanson et de la danse au-dessus, et de le traduire pour son centre est à la valeur désirée, centre, ont échoué.

Comment, pour les aiguilles de cette horloge, je peux dire "je veux les mains dans la suite de rotations" et de les avoir correctement placé autour du centre?

--EDIT--

Partie cruciale de ce code, modifié dans une tentative d'utiliser des couches en réponse à un commentaire, c'est:

UIImage *hourHandImage = [UIImage imageNamed:@"hour-hand.png"];
UIImageView *hourHandView = [[UIImageView alloc] initWithImage:hourHandImage];
float hourRotation = .5;
hourHandImage = [UIImage imageNamed:@"hour-hand.png"];
hourHandView = [[UIImageView alloc] initWithImage:hourHandImage];
CGAffineTransform transform = CGAffineTransformMakeTranslation(centerX - 21, -centerY - 121);
//transform = CGAffineTransformRotate(transform, hourRotation);
//transform = CGAffineTransformTranslate(transform, 2 * centerX, 2 * centerY);
hourHandView.transform = transform;
hourHandView.layer.anchorPoint = CGPointMake(centerX, centerY);
hourHandView.layer.affineTransform = CGAffineTransformRotate(transform, hourRotation);
[self.view addSubview:hourHandView];

Merci,

--EDIT--

J'ai maintenant quelque chose d'épuré; si je suivre certaines instructions, j'ai:

CGAffineTransform transform = CGAffineTransformMakeTranslation(100 -21, 100 -121);
transform = CGAffineTransformRotate(transform, hour / 12.0 * M_PI * 2.0);
transform = CGAffineTransformTranslate(transform, -330, 330);
hourHandView.transform = transform;

Je voudrais travailler sur l'obtention de ces chiffres, mais il a une heure de 9:00 correctement affiché.

Merci à tous pour votre aide!

Avez-vous un couple d'images par exemple, vous pouvez poster? Qu'utilisez-vous comme x et y ici? Ils devraient être la moitié de la largeur et de la hauteur, respectivement, de le rectangle de délimitation de la chose que vous essayez de faire pivoter.
Aussi, ce qui est a? Notez qu'il doit être exprimé en radians, pas de degrés.
Toutes les manipulations géométriques à l'affichage se produisent autour du point d'ancrage. Exemple, si anchorPoint={0.5,0.5} (centre), la vue tourne comme si il y avait un z-axe de droite passant par le centre. Mains de l'horloge tourne presque le tour de la pointe, de sorte que vous besoin de quelque chose comme hourHand.la couche.anchorPoint = CGPointMake(0.5 f, 0.9 f);
J'ai utilisé comme x et y de l'endroit où je place au centre de l'horloge cueillies à la main avec un éditeur d'image comme le centre d'une horloge à la main n'est généralement pas le centre de la boîte englobante. un a été exprimé en radians, et j'ai essayé quelques-uns des valeurs différentes en essayant de carte son comportement; mais surtout .5 comme un point de départ et j'ai seulement donné des angles en radians.
Autant que les images, ce qui s'affiche dans l'orientation que je suis en train de travailler sur la première, au JonathansCorner.com/project/tracking_hands.png. Maintenant l'aiguille des heures est hors de l'écran, c'est juste un joli Steampunk le visage de l'horloge sans aiguilles.

OriginalL'auteur JonathanHayward | 2013-10-10