2011-09-30 21 views

Odpowiedz

16

Nie ma stałej zawierającej tę wartość. Jednak stosując następujące metody UINavigationControllerDelegate:

- (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]); 
} 

... widzę, że czas trwania wynosi około 0,35 sekundy

ciekawe, różne części poglądów przyjmują różne czasy przejścia na miejscu. Zobacz tę wielką blogu wiecej informacji:

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

+0

Świetny post na blogu! Dzięki za link. – morais

+29

W systemie iOS 8 czas trwania animacji wynosi "0,2" sekundy. (Istnieje teraz stała, do której można się odnieść: 'UINavigationControllerHideShowBarDuration'.) – zekel

+1

Ten komentarz powinien być odpowiedzią, pomógł mi wiele razy – fpg1503

14

W iOS 7 a później można mieć dokładną wartość ustawiając delegata UINavigationController i stosując metodę:

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

To jest przyszłość metoda dowodowa, jeśli czas trwania defektu ulegnie zmianie. W tej chwili jego wartość wynosi 0,35 sekundy.

Powiązane problemy