UINavigationController上视图之间的过渡动​​画有多长?

时间:2011-09-30 10:27:17

标签: ios cocoa-touch caanimation

理想情况下,会有某种常量包含此值。

我正在实现具有自己的过渡动画的代码,我希望它们具有与平台过渡动画相同的长度。

2 个答案:

答案 0 :(得分:21)

iOS 7 及更高版本中,您可以通过设置UINavigationController委托并使用以下方法获得确切的值:

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

这是未来证明方法,如果更改期限将永远改变。目前它的值是0.35秒。

答案 1 :(得分:19)

没有包含此值的常量。但是,使用以下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]);
}

......我可以看到持续时间约为0.35秒

有趣的是,视图的不同部分需要不同的时间才能过渡到位。有关更多详细信息,请参阅此博客文章:

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