理想情况下,会有某种常量包含此值。
我正在实现具有自己的过渡动画的代码,我希望它们具有与平台过渡动画相同的长度。
答案 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