2009-09-28 8 views
9

Je suis en train de créer une animation "page curl" d'une image dans mon application iPhone. Je suis UIViewAnimationTransitionCurlUp, et ses frères et sœurs de Core Animation non documentés, cependant l'image dont j'ai besoin pour animer est un PNG transparent, avec des contours "inégaux" (certains pixels alpha). Lors de l'utilisation de la transition pré-faite ci-dessus, ces pixels alpha sont peints en noir dès que l'animation commence, ce qui semble terriblement moche. Par conséquent, je cherche à créer moi-même une Animation de base. J'ai essayé de faire des recherches sur le sujet, mais je n'ai pas réussi à trouver un bon aperçu des techniques utilisées. La mise en œuvre devrait évidemment être plus complexe qu'un changement de propriété unique, j'ai l'impression que même CATransform3D serait limité à cette fin, car l'image doit avoir différentes transformations 3D appliquées dans différentes parties de celle-ci - changeant au fil du temps . Comment pourrait-on alors aborder ce sujet? Je suis très reconnaissant pour toute pensée ou idée!Comment créer une animation Core Curl personnalisée?

Best, Eli

+1

Core Animation est une abstraction d'OpenGL. Les transitions sont donc des manipulations OpenGL des calques. Je ne suis pas sûr s'il existe un moyen pour vous de définir une animation personnalisée dans OpenGL et ensuite l'utiliser dans le framework CoreAnimation. C'est ce que je chercherais d'abord à voir si c'est possible. –

+0

Avez-vous déjà trouvé une bonne solution pour cela? –

+0

alku83, pas vraiment .. A fini de superposer l'écran avec un UIImageView animant. – eliego

Répondre

6

Comme le souligne Corey, vous devrez probablement utiliser OpenGL ES pour celui-ci. Core Animation expose la possibilité de travailler avec des calques, even in 3-D, mais tous les calques ne sont que des rectangles et sont manipulés en tant que tels. Vous pouvez animate the flipping of a layer about an axis, même with a perspective distortion, mais le type de courbe que vous voulez faire est plus complexe que ce que vous pouvez gérer en utilisant les API Core Animation. Vous pouvez diviser votre image en un maillage de couches minuscules et manipuler chacune d'elles en utilisant un CATransform3D pour créer cet effet de courbe, mais à ce stade, vous pourriez aussi bien utiliser OpenGL ES pour créer le même effet.

0

Le livre Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces de Pragmatic Programmer peut vous aider à écrire des animations d'animation personnalisées de base.

+4

Dans ce cas, cela n'aidera pas. Le livre Core Animation constitue une excellente introduction à la technologie et décrit ce que vous pouvez faire avec les différents types de calques et animations fournis par le framework, mais il s'arrête au type de personnalisation extrême dont il a besoin. –