2009-09-28 15 views
9

Ich versuche, eine "curl" -Animation eines Bildes in meiner iPhone-Anwendung zu erstellen. Ich t UIViewAnimationTransitionCurlUp, und es ist undokumentiert Core Animation Geschwister, aber das Bild, das ich animieren muss, ist eine transparente PNG, mit "unebenen" (einige Alpha-Pixel) Konturen. Bei Verwendung des oben erwähnten vorgefertigten Übergangs werden diese Alpha-Pixel schwarz gezeichnet, sobald die Animation beginnt, was schrecklich hässlich aussieht.Wie erstelle ich eine benutzerdefinierte Seite curl Core Animation?

Daher versuche ich, eine eigene Kernanimation zu erstellen. Ich habe versucht, das Thema zu recherchieren, konnte aber keinen guten Überblick über die Techniken finden. Die Implementierung müsste natürlich komplexer sein als eine einzige Eigenschaftsänderung, ich habe das Gefühl, dass auch CATransform3D zu diesem Zweck begrenzt sein sollte, da das Bild in verschiedenen Teilen unterschiedliche 3D-Transformationen haben muss - im Laufe der Zeit ändernd . Wie würde man dann über dieses Thema gehen? Ich bin sehr dankbar für irgendwelche Gedanken oder Ideen!

Best, Eli

+1

Kern Animation ist eine Abstraktion von OpenGL. Die Übergänge sind also tatsächlich OpenGL-Manipulationen der Ebenen. Ich bin nicht sicher, ob es eine Möglichkeit für Sie gibt, eine benutzerdefinierte Animation in OpenGL zu definieren und dann im CoreAnimation-Framework zu verwenden. Das würde ich zuerst untersuchen, um zu sehen, ob es möglich ist. –

+0

Haben Sie jemals eine gute Lösung dafür gefunden? –

+0

alku83, nicht wirklich .. Am Ende überlagert den Bildschirm mit einer animierenden UIImageView. – eliego

Antwort

6

Da Corey darauf hinweist, müssen Sie wahrscheinlich mit OpenGL ES für diesen gehen. Core Animation macht die Arbeit mit Layern, even in 3-D, möglich, aber alle Ebenen sind nur Rechtecke und werden als solche manipuliert. Sie können animate the flipping of a layer about an axis, sogar with a perspective distortion, aber die Art der Krümmung, die Sie tun möchten, ist komplexer als Sie mit den Core Animation APIs verwalten können.

Sie können Ihr Bild möglicherweise in ein Netz aus winzigen Layern aufteilen und jedes mit CATransform3D bearbeiten, um diesen Krümmungseffekt zu erzeugen. An diesem Punkt können Sie aber auch OpenGL ES verwenden, um denselben Effekt zu erzeugen.

0

Das Buch Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces von Pragmatische Programmierer können Sie benutzerdefinierte Core Animation Animationen helfen schreiben.

+4

In diesem Fall wird es nicht helfen. Das Core-Animationsbuch dient als eine gute Einführung in die Technologie und beschreibt, was Sie mit den verschiedenen Layertypen und Animationen tun können, die das Framework bietet, aber die Art der extremen Anpassung, die er benötigt, nicht einhält. –

Verwandte Themen