2009-09-28 15 views
9

Próbuję utworzyć animację "zawinięcia strony" obrazu w mojej aplikacji na iPhone'a. I t UIViewAnimationTransitionCurlUp i jest to nieudokumentowane rodzeństwo Core Animation, jednak obraz, który muszę animować, to przezroczysty PNG, z konturami "nierównymi" (niektóre alfa pikseli). Podczas korzystania z wcześniej wspomnianego przejścia, te piksele alfa są pomalowane na czarno po uruchomieniu animacji, co wygląda okropnie brzydko.Jak utworzyć niestandardową animację Core Curl?

Dlatego staram się stworzyć własną animację rdzenia. Próbowałem zbadać ten temat, ale nie byłem w stanie znaleźć dobrego przeglądu stosowanych technik. Implementacja musiałaby oczywiście być bardziej złożona niż pojedyncza zmiana własności, mam wrażenie, że nawet CATransform3D będzie ograniczony do tego celu, ponieważ obraz musi mieć różne transformacje 3D zastosowane w różnych jego częściach - zmieniając się w czasie . Jak podjąłby się ten temat? Jestem bardzo wdzięczny za wszelkie myśli i pomysły!

Best, Eli

+1

Core Animation to abstrakcja OpenGL. Tak więc przejścia są w rzeczywistości manipulatorami warstwy OpenGL. Nie jestem pewien, czy istnieje sposób na zdefiniowanie niestandardowej animacji w OpenGL, a następnie użycie jej w środowisku CoreAnimation. Właśnie to chciałbym najpierw zbadać, czy to możliwe. –

+0

Czy kiedykolwiek znalazłeś dobre rozwiązanie? –

+0

alku83, niezupełnie .. Zakończył się nakładanie ekranu z animowanym UIImageView. – eliego

Odpowiedz

6

Jak wskazuje Corey, prawdopodobnie będziesz musiał skorzystać z OpenGL ES dla tego. Core Animation ujawnia zdolność do pracy z warstwami, even in 3-D, ale wszystkie warstwy są tylko prostokątami i są nimi manipulowane. Możesz animate the flipping of a layer about an axis, nawet with a perspective distortion, ale rodzaj zakrzywienia, które chcesz zrobić, jest bardziej skomplikowany niż można zarządzać przy użyciu interfejsów API Core Animation.

Może być możliwe podzielenie obrazu na siatkę małych warstw i manipulowanie nimi za pomocą CATransform3D w celu utworzenia tego efektu zakrzywienia, ale w tym momencie równie dobrze można używać OpenGL ES, aby uzyskać ten sam efekt.

0

Książka Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces z pragmatyczną Programmer może pomóc napisać niestandardowy Rdzeń animacji animacji.

+4

W tym przypadku to nie pomoże. Książka Core Animation jest świetnym wprowadzeniem do tej technologii i opisuje, co możesz zrobić z różnymi rodzajami warstw i animacjami dostarczonymi przez framework, ale nie jest to koniec wymaganej przez niego wyjątkowej personalizacji. –

Powiązane problemy