2012-11-07 8 views
7

Moim celem jest, aby 3 obrazy były zmniejszane, powiększane i poruszały się wzdłuż osi poziomej w zależności od wyboru. Wydaje się, że za pomocą funkcji Auto Layout obrazy przeskakują, gdy próbują wypełnić górną przestrzeń, aby uzyskać podgląd/spację, aby przeglądać ograniczenia.iOS 6 AutoLayout Skalowanie i tłumaczenie animacji

Aby to zwalczyć, umieściłem wszystkie obrazy w ich własnym UIView. UIView jest ustawiony na maksymalny rozmiar, na jaki obrazy mogą się rozwinąć, jest wyśrodkowany na osi poziomej. Teraz wszystkie obrazy muszą pozostać wyśrodkowane w odpowiadającym im UIView. To naprawiło mój problem, ponieważ UIViews wykonują translację poziomą, podczas gdy obrazy kurczą się/rosną wewnątrz, pozostając wyśrodkowane. Moje pytanie brzmi - czy to jest właściwy sposób na zrobienie tego? Wydaje się bardzo długi i jakbym prawdopodobnie nadużywał możliwości automatycznego układu. Muszę wykonywać podobne zadania z większą ilością obrazów, więc wszelkie rady są mile widziane! Dzięki.

Odpowiedz

8

Właśnie napisany trochę esej na ten temat tutaj:

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

Zasadniczo autolayout nie grać w ogóle dobrze z każdym rodzajem widzenia transformacji. Najprostszym rozwiązaniem jest całkowite wyłączenie kontroli nad autouzupełnianiem, ale możesz też podać tylko ograniczenia, które nie będą walczyć z tym rodzajem transformacji, którą zamierzasz zastosować. To drugie rozwiązanie brzmi jak coś, co robisz.

+0

Dzięki za pomoc. Tak. Drugie rozwiązanie jest tym, co bardziej mi się podoba! – bean

+0

Używam tłumaczeń CATransform3D na widokach, które są częścią autolayout bez problemów. – bandejapaisa

+0

@bandejapaisa Nie, nie masz. CATransform3D jest stosowany do warstw, a nie widoków. Zobacz rozwiązanie 4 mojego eseju, o którym mowa powyżej (http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-a-calayer-when-auto-layout-is- będący w użyciu/14105757 # 14105757) - to rozwiązanie polega na użyciu transformacji warstw zamiast transformacji widoku. – matt