2011-09-19 7 views
6

En iOS, se desaconseja el uso de beginAnimation-commitAnimation en la documentación. Entonces, para animaciones y transiciones hay nuevos métodos que hacen uso de^bloques. Sin embargo cuando utilizo transitionWithView: duración: Opciones: animaciones: Método de finalización me sale ninguna transición effects.So si escribo:La animación de transición UIView no funciona con transitionWithView: duration: options: animations: método de finalización

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:self.view cache:YES]; 

firstView.hidden = YES; 
secondView.hidden = NO; 
[UIView commitAnimations]; 

funciona, pero si lo hago de la siguiente manera

[UIView transitionWithView:self.view duration:1.0 options 
     UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 
     animations:^{ 
      firstView.hidden = YES; 
      secondView.hidden = NO; 
     } completion:NULL 
     ]; 

I no obtienes ningún efecto de transición ¿Qué me estoy perdiendo?

Respuesta

18

OK, he encontrado los detalles sutiles que todos deben tener en cuenta para que la animación y las transiciones funcionen con el método disponible en iOS 4 y posteriores. Al especificar las opciones de animación/transición para el método, debemos usa las constantes con la palabra "Opción" en él. Así que en lugar de escribir

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 

debemos escribir

después de la fijación que la transición funcionaba bien

+0

Gracias por esa observación. Buena información! – GrimmRanger

+0

Ha, buen lugar y error fácil de realizar con autocompletado ... ¡dónde está el tipo de seguridad cuando lo necesita! – bandejapaisa

+0

¡Oh mi Dios! Pasé dos frustrantes horas con esta basura hasta que encontré esto. Apple necesita seriamente depreciar las versiones "sin opción". – rushinge

Cuestiones relacionadas