理想情况下,会有某种包含该值的常量。
我正在实现具有自己的过渡动画的代码,并且我希望它们具有与平台过渡动画相同的长度。
在iOS 7及更高版本中,您可以通过设置UINavigationController
委托和使用方法获得准确的值:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated {
NSTimeInterval duration = [viewController.transitionCoordinator transitionDuration];
}
如果默认持续时间会改变,这是未来的证明方法。目前它的值为0.35秒。
没有包含此值的常量。但是,使用以下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