Ejemplo TransitionView de iPhone Dev Center
11 July 2008

Gracias al compañero pequenionoa, mientras charlábamos sobre iPhone, conocí uno de los ejemplos que Apple tiene publicado a través de la Web para desarrolladores de iPhone Dev Center. Todo vino a raíz de buscar una solución para conseguir el efecto que UINavigationController consigue al pasar de una vista a otra mediante el método pushView. (Efecto que hace que una vista se desplace hacia la izquierda y aparezca otra por la derecha).
El ejemplo en concreto es TransitionView y es de una gran sencillez y un resultado espectacular. Se basa en la clase CATransition y necesita de la inclusión del framework QuartzCore en nuestro proyecto.
Dicho ejemplo dispone de una clase TransitionView, bastante limpia y bastante facil de entender, la cual nos presenta dos métodos para realizar la transición entre vistas y para cancelarlas si se quiere:
- (void)replaceSubview:(UIView *)oldView withSubview:(UIView *)newView transition:(NSString *)transition direction:(NSString *)direction duration:(NSTimeInterval)duration;
- (void)cancelTransition;
Gracias al protocolo TransitionViewDelegate que reside en los mismos ficheros de la clase anterior, podremos controlar algunos eventos de la clase CATransition como animationDidStart y animationDidStop, para saber cuando se inicia y cuando finaliza dicha transición.
La llamada al método principal de esta clase, para simular el efecto de pushView se hará de la siguiente manera:
[transitionView replaceSubview:view1 withSubview:view2 transition:kCATransitionPush direction:kCATransitionFromRight duration:0.75];
Un ejemplo que me ha gustado mucho y que conviene tenerlo a mano.

Deja un comentario