2009-03-10 11 views
7

Jestem świadomy, że istnieją tylko dwie dostępne przejścia UIView, UIViewAnimationTransitionFlipFromLeft i UIViewAnimationTransitionFlipFromRight. Zastanawiam się, czy jest tak, że mogę zaimplementować/emulować UIViewAnimationTransitionFlipFromTop lub UIViewAnimationTransitionFlipFromBottom.Przerzucanie UIViews od góry/dołu

Jedyny sposób, w jaki mogę to zrobić, to odwrócenie osi X o oś y, ale nie widziałem żadnych informacji o tym, jak to zrobić. Samo ustawienie współrzędnych każdej osi nie rozwiąże problemu, ponieważ oś X pozostanie na osi X.

Czy ktoś ma jakieś pomysły, jak można to osiągnąć?

+0

O.o Kolejny Ryan Amos na SO? –

+0

Wysłałem odpowiedź na flipFromBottom, która zadziałała dla mnie http://stackoverflow.com/questions/5144446/uiview-flip-vertical-animation/7463047#7463047 – xxcv

Odpowiedz

4

Możesz to zrobić, stosując CATransform3D do CALayer widoku głównego, z CALayerem drugiego widoku za nim. W dokumencie this response wskazuję implementację tej animacji Maca autorstwa Mike'a Lee. Powinieneś być w stanie ponownie wykorzystać znaczną część tego kodu, aby odtworzyć ten efekt na telefonie iPhone.

3

Zgadnij, że będziesz musiał użyć bloku animacji UIView z transformacją obrotu 3D o 90 stopni, poprosić delegata Core Animation, gdy to zrobisz, zamienić widok na nowy (3D obrócony po drugiej stronie) i łańcuch z ostatnich 90 stopni dla nowego widoku ...

1

Chociaż nie jest to dokładnie to, czego potrzebujesz, istnieją dwie wbudowane animacje, o których nie wspomniałeś: UIViewAnimationTransitionCurlDown i UIViewAnimationTransitionCurlUp.

CurlUp wygląda tak, jakby ktoś odgarniał widok od dołu do góry, a CurlDown wygląda tak, jakby widok był rozwijany w dół na górze ekranu od góry do dołu. Powinieneś przynajmniej rzucić okiem, ponieważ są łatwe w użyciu.