UIViewPropertyAnimator
就像 UIView 动画的面向对象版本。注意:UISpringTimingParameters包括两种init方法:init(dampingRatio: CGFloat, initialVelocity: CGVector)
如UIView Spring Animation API,是spring动画的简化版;init(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector)
就像 Core Spring Animation API 一样,它是完整的弹簧动画。
回答: 弹簧时间为init(dampingRatio: CGFloat, initialVelocity: CGVector)
,UIViewPropertyAnimator
实例的动画持续时间将是您设置的持续时间;使用弹簧计时init(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector)
,UIViewPropertyAnimator
实例的动画持续时间将是这个弹簧计时计算的一个。很容易验证它。你可以使用我的演示:ControlPanelAnimation。
UIView Spring Animation API 是 Core Spring Animation API 的简化版,正如你引用的文章所说,UIView Spring Animation API 不擅长真正的振荡,但它很容易控制:大多数时候你需要一个动画你确定它的持续时间。核心Spring动画API:CASpringAnimation,它具有真实的弹簧行为,但它的持续时间不容易控制,它的动画持续时间最多它的四个物理参数。