紧接着之前的文章,继续Layer动画的探究,希望大家可以学习到更多的动画知识。
1. CASpringAnimation弹性动画类
- CASpringAnimation是继承CABasicAnimation类。
说明:Layer弹性动画类似一个钟摆装置,由于受初始速度、摩擦力大小、摆锤自身重量等因素影响,经历不同的摆动时间,最终慢慢的停止。
2. CASpringAnimation属性
- damping:阻尼,调整动画到达稳定时间的值,默认值为10.0。阻尼值越大,动画持续时间远短。可以是任何的自然数,如果为0,将永远震荡下去。
- mass:重量,类似于锤摆的重量,默认值为1.0。
- stiffness:弹性系数,默认值为100.0。值越小,弹跳的越柔软,值越大,弹跳的越僵硬。
- initialVelocity: 初始速度,默认值为0.0,可以是一切整数。
说明:duration动画持续时间,类似钟摆一样,受众多因素影响,我们无法动画的持续时间。所以这个属性必须这样设置,如下所示:
pulse.duration = pulse.settlingDuration
弹性动画demo
let pulse = CASpringAnimation(keyPath: "transform.scale")
pulse.damping = 7.5
pulse.fromValue = 1.25
pulse.toValue = 1.0
pulse.duration = pulse.settlingDuration
layer?.add(pulse, forKey: nil)