我将动画从使用CABasicAnimation
移到了CAKeyFrameAnimation
,因为我需要控制keyFrames
。事情是,我有一个 reset 按钮,该按钮将获取此动画并将其strokeEnd
恢复为0
。我需要对此进行动画处理,并且与CABasicAnimation
一起使用时即可以使用 ,但是我不能使其与CAKeyFrameAnimation
一起使用。
let animation = CAKeyframeAnimation(keyPath: "strokeEnd")
animation.duration = 3.0
animation.values = [0, 1/3.0, 1/3.0, 2/3.0, 2/3.0, 1]
animation.keyTimes = [0.0, 1/3.0 - 0.1, 1/3.0, 2/3.0 - 0.1, 2/3.0, 1.0 - 0.1].map({ $0 as NSNumber })
animation.timingFunctions = Array(repeating: CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeOut), count: 5)
viewLayer?.add(animation, forKey: "strokeEnd")
我尝试构建一个反向CABasicAnimation
,但这似乎也不起作用,因为在动画时无法获取当前的strokeEnd
。