我目前正在使用 CADisplayLink 来执行一些特定的减速动画。我将 frameInterval 设置为 1。我看到一些开源项目只使用 1/60 秒作为帧更新之间的时间增量。我发现还有一个可用的时间戳方法,但是它是 mach 格式。我应该使用哪一个,我可以假设所有 iPhone 的刷新率都是 60hz,因此可以安全使用 1/60?如果我使用时间戳方法,我应该如何将其转换为秒?
提前谢谢了。
我目前正在使用 CADisplayLink 来执行一些特定的减速动画。我将 frameInterval 设置为 1。我看到一些开源项目只使用 1/60 秒作为帧更新之间的时间增量。我发现还有一个可用的时间戳方法,但是它是 mach 格式。我应该使用哪一个,我可以假设所有 iPhone 的刷新率都是 60hz,因此可以安全使用 1/60?如果我使用时间戳方法,我应该如何将其转换为秒?
提前谢谢了。
使用 1/60 秒作为时间增量是危险的,因为您永远不知道未来的设备或外部显示器是否会使用该刷新率。因此,如果您想要面向未来,您应该使用基于时间戳的解决方案。您可以使用 Unix 纪元时间戳并计算 2 个目标调用之间的间隔:
UInt64(NSDate().timeIntervalSince1970 * 1000.0)
您还可以使用 CADisplayLink 时间戳,它已经以秒为单位: https ://developer.apple.com/reference/quartzcore/cadisplaylink/1621257-timestamp