2010-09-03 6 views
0

S'il vous plaît quelqu'un peut-il aider avec une simple transformation que je tente ...Transformer la question: comment déplacer une image en zoomant?

Le code ci-dessous agrandit une image miniature en une qui remplit l'écran. Le problème est que la vignette n'est pas centrée (son décalage vers la droite), donc le zoom doit en fait déplacer l'image vers la gauche, comme il zoome.

[fullsizeImageButton setTransform: CGAffineTransformMakeScale (.5 ,. 5)];

[UIView beginAnimations: nil contexte: NULL];

[UIView setAnimationDuration: 0,9]; fullsizeImageButton.transform = CGAffineTransformMakeScale (1,1);

[UIView commitAnimations];

Merci d'avance pour toute aide

Répondre

0

Vous devez construire une transformation un peu plus complexe. La transformation d'échelle met à l'échelle l'image par rapport à l'origine actuelle (0,0), mais vous souhaitez la mettre à l'échelle par rapport au centre de l'image. Donc, vous devez traduire au centre, redimensionner et traduire

+0

Merci pour votre réponse. J'ai effectivement trouvé une autre façon d'accomplir ceci: [fullsizeImageButton setTransform: CGAffineTransformConcat (CGAffineTransformMakeTranslation (-400,100), CGAffineTransformMakeScale (1,1))]; Je ne suis pas sûr s'il y a un problème de performance avec l'utilisation de la méthode concat par rapport à votre suggestion. – user432865

+0

En fait, c'est similaire à ce dont je parlais. Mais vous appliquez l'échelle avec "fixage" translate ensuite alors que j'ai suggéré plus de solution "classique" en déplaçant l'origine au centre de l'image. En fait, vous ce que vous aimez :) Astuce avec l'origine est utile dans la plupart des cas, par exemple, c'est la seule façon de faire pivoter un objet autour de son centre. – Gobra

Questions connexes