2009-09-28 12 views
9

Estoy tratando de crear una animación "curl de página" de una imagen en mi aplicación de iPhone. I t UIViewAnimationTransitionCurlUp, y es hermanos Core Animation indocumentados, sin embargo, la imagen que necesito para animar es una PNG transparente, con contornos "desiguales" (algunos píxeles alfa). Al utilizar la transición prefabricada antes mencionada, esos píxeles alfa se pintan de negro tan pronto como comienza la animación, lo que se ve terriblemente feo.¿Cómo creo una animación de núcleo de página personalizada?

Por lo tanto, busco crear una animación básica propia. Intenté investigar el tema, pero no pude encontrar una buena descripción de las técnicas involucradas. La implementación, por supuesto, tendría que ser más compleja que un solo cambio de propiedad, tengo la sensación de que incluso CATransform3D sería limitado para este propósito, ya que la imagen necesita tener diferentes transformaciones 3D aplicadas en diferentes partes de ella, cambiando con el tiempo . ¿Cómo podría uno abordar este tema? ¡Estoy muy agradecido por cualquier idea o pensamiento!

mejor, Eli

+1

Core Animation es una abstracción de OpenGL. Entonces las transiciones son en realidad manipulaciones OpenGL de las capas. No estoy seguro de si hay alguna manera de definir una animación personalizada en OpenGL y luego usarla en el marco de CoreAnimation. Eso es lo que investigaría primero para ver si es posible. –

+0

¿Alguna vez encontró una buena solución para esto? –

+0

alku83, en realidad no ... Terminó superponiendo la pantalla con una animación de UIImageView. – eliego

Respuesta

6

Como señala Corey, probablemente deba ir con OpenGL ES para este. Core Animation expone la capacidad de trabajar con capas, even in 3-D, pero todas las capas son solo rectángulos y se manipulan como tales. Puede animate the flipping of a layer about an axis, incluso with a perspective distortion, pero el tipo de curva que desea hacer es más complejo de lo que puede administrar utilizando las API de Core Animation.

Es posible que pueda dividir su imagen en una malla de capas pequeñas y manipular cada una utilizando un CATransform3D para crear este efecto de curvatura, pero en ese punto también podría estar utilizando OpenGL ES para crear el mismo efecto.

0

El libro Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces del programador pragmático puede ayudarle a escribir animaciones animación personalizada Core.

+4

En este caso, no ayudará. El libro Core Animation sirve como una excelente introducción a la tecnología, y describe lo que puede hacer con los diversos tipos de capas y animaciones proporcionadas por el framework, pero no llega al tipo de personalización extrema que necesita. –

Cuestiones relacionadas