programas personajes para modelos hacer cómo crear app animación animaciones animacion iphone objective-c cocoa-touch

iphone - personajes - hacer animaciones 3d en android



¿Cómo hacer una animación flip entre más de dos UIViews? (4)

Apple tiene un buen tutorial sobre las transiciones de vista aquí . Además de la forma en que los implementan, también se puede utilizar un UINavigationController que gestiona un conjunto de vistas y la transición entre ellas.

Básicamente, debe gestionar la transición en la supervista en lugar de la vista: la supervista puede saber quién está mostrando actualmente y quién será el siguiente.

Tengo un código de animación en una clase que amplía UIView:

// Start Animation Block CGContextRef context = UIGraphicsGetCurrentContext(); [UIView beginAnimations:nil context:context]; [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:1.0]; //int nextView = currentView + 1; // Animations [[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; //And so I would do: [[self superview exchangeSubviewAtIndex:currentView withSubviewAtIndex:nextView]; //Doesn''t work because curentView is not global... with each instance of a class it''s reset to what it''s instanciated to. //currentView++; // Commit Animation Block [UIView commitAnimations];

Este código de animación funciona bien para dos vistas. Pero estoy tratando de hacer esto para muchos puntos de vista. Intenté agregar una variable global (índice nextview e índice currentView), sin embargo, esto no funciona, ya que cada clase de vista personalizada tiene su propia instancia y estas variables no se comparten.

¿Alguien sabe cómo puedo lograr lo que quiero hacer?

¡Gracias!

Editar: Sería capaz de hacer esto, si pudiera usar [autoverview] para acceder al índice de la vista actual y de la próxima vista. ¿Hay algunos métodos para hacer esto?


Creo que una lista de puntos de vista vinculados podría ser lo que debería pensar en implementar.


Si tiene punteros a las vistas a las que intenta cambiar, simplemente llame a -removeFromSuperview en la vista "from" y -addSubview: (la vista "a") en la supervista. La transición no depende de ninguna llamada de método en particular; más o menos cualquier forma del enfoque "intercambiar dos vistas" se animará correctamente.