添加减速和加速以缩放动画

Add deceleration and acceleration to scale animation

我有一个动画,主要是增加和减少按钮的比例,以引起用户注意它是可点击的。

运行良好,但不是很流畅。一旦达到全尺寸,它就会立即切换到缩小尺寸。我想知道如何给它加上一个减速周期和一个加速周期,让它每次改变方向时,先减速再加速?

这是我的代码:

func bloat() {
    var animation = CABasicAnimation(keyPath: "transform.scale")
    animation.toValue = NSNumber(float: 0.9)
    animation.duration = 1
    animation.repeatCount = 100
    animation.autoreverses = true
    faceButton.layer.addAnimation(animation, forKey: nil)
}

您需要添加计时功能。为了简单起见,您应该使用其中一种预定义的。

animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut);

这个计时函数会在开始时加加速,在结束时加减速。