Ios UINavigationController上视图之间转换的动画有多长?
理想情况下,会有某种常量包含此值Ios UINavigationController上视图之间转换的动画有多长?,ios,cocoa-touch,caanimation,Ios,Cocoa Touch,Caanimation,理想情况下,会有某种常量包含此值 我正在实现具有自己的转换动画的代码,我希望这些动画的长度与平台转换动画的长度相同。没有包含此值的常量。但是,使用以下UINavigationControllerDelegate方法: - (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animat
我正在实现具有自己的转换动画的代码,我希望这些动画的长度与平台转换动画的长度相同。没有包含此值的常量。但是,使用以下
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秒
有趣的是,视图的不同部分需要不同的时间过渡到位。有关更多详细信息,请参阅这篇精彩的博文:
在iOS 7及更高版本中,您可以通过设置
UINavigationController
委托并使用以下方法获得精确值:
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated {
NSTimeInterval duration = [viewController.transitionCoordinator transitionDuration];
}
如果defult持续时间会发生变化,这是一种经得起未来考验的方法。目前它的值是0.35秒。很棒的博客文章!感谢您的链接。在iOS 8上,动画持续时间似乎为
0.2
秒。(现在有一个常数可以参考:UINavigationControllerHideShowBarDuration
)这个注释应该是一个答案,它帮助了我很多次这个常数只适用于导航栏的动画,不是viewController视图本身。UINavigationController.hideShowBarDuration
的计时似乎比推/弹出动画快。