Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationController上视图之间转换的动画有多长?_Ios_Cocoa Touch_Caanimation - Fatal编程技术网

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
的计时似乎比推/弹出动画快。