2012-11-07 8 views
7

Mein Ziel ist es, 3 Bilder verkleinern, wachsen und entlang einer horizontalen Achse je nach Auswahl bewegen. Die Verwendung von Auto-Layout scheint die Bilder herumspringen zu lassen, während sie versuchen, die zu betrachtenden Obergrenzen für Superview/Bottom Space zu erfüllen.iOS 6 AutoLayout Scale und Translate Animation

Um dies zu bekämpfen, habe ich alle Bilder in ihre eigene UIView gelegt. Die UIView wird auf die maximale Größe festgelegt, mit der die Bilder wachsen können. Sie ist auf der horizontalen Achse zentriert. Jetzt müssen alle Bilder also in der entsprechenden UIView zentriert bleiben. Dies hat mein Problem behoben, da die UIViews die horizontale Übersetzung durchführen, während die Bilder innen schrumpfen/wachsen und zentriert bleiben. Meine Frage ist - ist das der richtige Weg, dies zu tun? Es scheint sehr lang und ich mag vielleicht die Fähigkeit von Auto Layout missbrauchen. Ich muss ähnliche Aufgaben mit mehr Bildern ausführen und so ist jeder Rat willkommen! Vielen Dank.

Antwort

8

Ich habe gerade einen kleinen Aufsatz zu diesem Thema hier geschrieben:

How do I adjust the anchor point of a CALayer, when Auto Layout is being used?

Grundsätzlich automatisches Layout spielt gar nicht gut mit jeder Art von Blick verwandeln. Die einfachste Lösung besteht darin, die Autolayout-Steuerung vollständig zu betrachten, aber alternativ können Sie nur Einschränkungen angeben, die sich nicht gegen die bestimmte Art von Transformation richten, die Sie anwenden möchten. Diese zweite Lösung klingt wie die Art von Dingen, die Sie tun.

+0

Danke für Ihre Hilfe. Ja. Die zweite Lösung gefällt mir mehr! – bean

+0

Ich verwende CATransform3D Übersetzungen auf Ansichten, die Teil des automatischen Layouts sind, ohne Probleme. – bandejapaisa

+0

@bandejapaisa Nein, das tust du nicht. CATransform3D wird auf Layer und nicht auf Ansichten angewendet. Siehe Lösung 4 meines oben erwähnten Aufsatzes (http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is- verwendet/14105757 # 14105757) - diese Lösung ist genau Layer-Transformationen anstelle von View-Transformationen zu verwenden. – matt