¿Hay alguna forma alternativa de realizar esta animation usando bloques de animation?

Actualmente estoy realizando una curl up animation haciendo lo siguiente:

CATransition *animation = [CATransition animation]; animation.type = @"pageCurl"; animation.subtype = kCATransitionFromTop; animation.fillMode = kCAFillModeForwards; animation.duration = 1; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; [[self.view.window layer] addAnimation:animation forKey:nil]; 

Esta animation simplemente realizará una animation de curvatura de página, pero al final, se quedará mirando la misma vista que comenzó. No se ha producido ninguna transición REAL.

Ahora, usando bloques de animation, sé que puedes hacer algo para el efecto de:

 [UIView transitionFromView:self.view toView:aNewView // a view to transition to duration:1 options:UIViewAnimationTransitionCurlUp|UIViewAnimationOptionCurveEaseIn completion:NULL]; 

Sin embargo, al utilizar bloques de animation, está realizando la transición a una nueva vista, aNewView , que es diferente de la animation de CATransition anterior, que reutiliza la misma vista (nunca se produce una transición real). El problema con el bloque de animation es que realmente tienes que crear la nueva vista para la transición a lo que es engorroso en mi caso porque la vista es bastante complicada y prefiero no crear una subclass UIView.

¿Hay alguna manera de realizar la animation de CATransition anterior usando bloques de animation mientras se superan las dificultades de tener que rebuild una vista o crear una subclass personalizada?

Ok, así que lo descubrí para cualquiera que esté interesado. En realidad es muy simple. Simplemente puede usar el método: transitionWithView:duration:options:animations:completion:

Por ejemplo:

 [UIView transitionWithView:self.view duration:1 options:UIViewAnimationOptionTransitionCurlUp|UIViewAnimationCurveEaseIn animations:^{ // do anything you want here } completion:NULL]; 

Eso es. Esto mostrará una animation de transición a la misma vista. Puede hacer los cambios que desee en la nueva vista (tal vez mostrar un nuevo text, lo que sea …) en el bloque de animation.

Espero que esto ayude a alguien en la línea …