Quiero mostrar una animación personalizada al presionar un controlador de vista: me gustaría lograr algo así como una animación "expandir", es decir, la nueva vista se expande desde un rectángulo dado, digamos [100,100 220,380] durante la animación a pantalla completa.Animación personalizada para empujar un UIViewController
¿Alguna sugerencia por dónde empezar, o cualquier documento, tutorial, enlace? :)
Alright. Podría hacer que la animación se expanden con el siguiente código:
if ([coming.view superview] == nil)
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];
Mi vista se muestra correctamente, pero por desgracia la barra de navegación y no se actualiza. ¿Hay alguna manera de hacerlo manualmente?
En el código de ejemplo, una función se llama todos los 0.03 segundos que actualiza la transformación de la vista. Desafortunadamente, al presionar UIViewController
, no puedo cambiar el tamaño del marco de la vista ... ¿o sí?
He intentado este enfoque, pero el problema es que cuando usa este empuje, el primer controlador de vista desaparece antes de que el siguiente controlador comience a animar. Lo que debería suceder es: 1) el siguiente controlador de vista se anima y su vista cubre por completo la vista del viejo vc y luego aparece el viejo vc. Estoy compilando para iOS 4.3 y esto no está funcionando. – SpaceDog
Esto tampoco es escalable. Un controlador de navegación debe manejar la animación. Este es un truco que debería implementar para cada controlador de vista que se empuje. –