2011-09-30 16 views

cevap

16

Bu değeri içeren bir sabit yoktur. Ancak, aşağıdaki UINavigationControllerDelegate yöntemler kullanılarak:

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

... Ben süresi yaklaşık 0.35 saniye

İlginç görüşleri farklı bölümlerinin yerine geçiş farklı zamanları tutmak olduğunu görebilirsiniz. iOS 7yılında

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

+0

Harika bir blog gönderisi! Bağlantı için teşekkürler. – morais

+29

iOS 8'de, animasyon süresi '0.2' saniye olarak görünür. (Şu anda bir sabit vardır: "UINavigationControllerHideShowBarDuration".) – zekel

+1

Bu yorum bir cevap olmalı, bana birçok kez yardımcı oldu – fpg1503

14

ve daha sonra yöntem UINavigationController temsilci ayarlama ve kullanarak kesin değere sahip olabilir: Daha fazla ayrıntı için bu büyük blog yazısı bakın Bu gelecek

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

olduğunu Kusur süresi değişecekse ispat yöntemi. Şu anda değeri 0.35 saniyedir.