2011-09-30 10 views

Respuesta

16

No hay constantes que contengan este valor. Sin embargo, utilizando los UINavigationControllerDelegate métodos siguientes:

- (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    startTime = [[NSDate date] retain]; 
} 

- (void) navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    NSLog(@"Duration %f", [[NSDate date] timeIntervalSinceDate: startTime]); 
} 

... I puede ver que la duración es de aproximadamente 0,35 segundos

Curiosamente, las diferentes partes de las vistas tomar diferentes tiempos para la transición en su lugar. Ver esta gran entrada de blog para más detalles:

http://www.iclarified.com/12396/a-closer-look-at-iphone-transition-animations

+0

¡Publicación excelente del blog! Gracias por el enlace. – morais

+29

En iOS 8 la duración de la animación parece ser '0.2' segundos. (Ahora hay una constante a la que puede referirse: 'UINavigationControllerHideShowBarDuration'.) – zekel

+1

Este comentario debería ser una respuesta, me ha ayudado muchas veces – fpg1503

14

En iOS 7 y más tarde se puede tener valor exacto ajustando el delegado UINavigationController y utilizando el método:

- (void)navigationController:(UINavigationController *)navigationController 
     willShowViewController:(UIViewController *)viewController 
        animated:(BOOL)animated { 
    NSTimeInterval duration = [viewController.transitionCoordinator transitionDuration]; 
} 

Este es el futuro método de prueba si la duración de la falla cambiará alguna vez. Por el momento su valor es 0.35 segundos.

Cuestiones relacionadas