2009-03-10 10 views
7

Soy consciente de que solo hay dos transiciones UIView disponibles, UIViewAnimationTransitionFlipFromLeft y UIViewAnimationTransitionFlipFromRight. Me pregunto si de todos modos puedo implementar/emular una UIViewAnimationTransitionFlipFromTop o UIViewAnimationTransitionFlipFromBottom.Voltear UIViews desde arriba/abajo

La única forma en que puedo pensar para hacer esto es volteando el eje x con el eje y, pero no he visto ninguna información sobre cómo hacer esto. Simplemente establecer las coordenadas de cada eje no solucionará el problema ya que el eje x hasta que quede el eje x.

¿Alguien tiene alguna idea de cómo se puede lograr esto?

+0

O.o ¿Otro Ryan Amos en SO? –

+0

He publicado la respuesta para flipFromBottom que funcionó para mí http://stackoverflow.com/questions/5144446/uiview-flip-vertical-animation/7463047#7463047 – xxcv

Respuesta

4

Puede hacer esto aplicando un CATransform3D al CALayer de su vista principal, con el CALayer de su vista secundaria detrás. En this response, apunto a una implementación de Mac de esta animación por Mike Lee. Debería poder reutilizar una parte importante de ese código para recrear este efecto en el iPhone.

3

Supongo que deberás usar un bloque de animación UIView con una transformación de rotación 3D de 90 grados, hacer que el delegado Core Animation te llame cuando lo haya hecho, cambiar la vista por uno nuevo (3D rotado por el otro lado) y cadena con los últimos 90 grados para la nueva vista ...

1

Aunque no es exactamente lo que quiere, hay dos animaciones incorporadas que no mencionó: UIViewAnimationTransitionCurlDown y UIViewAnimationTransitionCurlUp.

CurlUp parece que alguien está pelando la vista desde abajo hacia arriba, y CurlDown parece que la vista se desenrolla en la parte superior de la pantalla de arriba a abajo. Deberías al menos echarles un vistazo, ya que son fáciles de usar.