2012-11-07 12 views
7

Il mio obiettivo è di ridurre a 3 immagini, aumentare e spostarsi lungo un asse orizzontale a seconda della selezione. L'uso di Auto Layout sembra far saltare le immagini mentre cercano di soddisfare lo spazio Top a superview/Bottom space a superview constraints.iOS 6 AutoLayout Scale and Translate Animation

Quindi per combattere questo ho messo tutte le immagini all'interno del proprio UIView. L'UIView è impostato sulla dimensione massima a cui le immagini possono crescere, è centrato sull'asse orizzontale. Quindi ora tutte le immagini devono essere centrate all'interno del loro corrispondente UIView. Questo ha risolto il mio problema mentre le UIViews eseguivano la traduzione orizzontale, mentre le immagini si restringevano/crescevano all'interno pur rimanendo centrate. La mia domanda è - è questo il modo corretto per farlo? Sembra molto lungo e forse sto utilizzando male la capacità di Auto Layout. Devo svolgere compiti simili con più immagini e quindi ogni consiglio è benvenuto! Grazie.

risposta

8

Ho appena scritto un piccolo saggio su questo argomento qui:

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

Fondamentalmente autolayout non gioca affatto bene con qualsiasi tipo di vista trasformare. La soluzione più semplice è quella di escludere completamente il controllo dal controllo automatico, ma in alternativa è possibile assegnargli solo vincoli che non combatteranno contro il particolare tipo di trasformazione che si intende applicare. Quella seconda soluzione suona come il tipo di cosa che stai facendo.

+0

Grazie per il vostro aiuto. Sì. La seconda soluzione è ciò che mi attrae di più! – bean

+0

Uso le traduzioni CATransform3D su viste che fanno parte del rollload automatico senza problemi. – bandejapaisa

+0

@bandejapaisa No, non lo fai. CATransform3D viene applicato ai livelli, non alle viste. Vedere la soluzione 4 del mio saggio di cui sopra (http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is- essere-usato/14105757 # 14105757) - quella soluzione è esattamente quella di usare trasformazioni di livello anziché trasformazioni di visualizzazione. – matt