我的代码如下。动画停止后如何加快速度?
extension UIView{
func rotate() {
let rotation : CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
rotation.fromValue = 0.0
rotation.toValue = 25
rotation.duration = 1.5
rotation.isCumulative = true
rotation.repeatCount = 1
self.layer.add(rotation, forKey: "rotationAnimation")
}
}
答案 0 :(得分:2)
请查找以下详细信息,并在代码中添加以下行
rotation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
EaseInOut 缓入缓出曲线会导致动画开始 慢慢地,加速到其持续时间的中间,然后慢下来 再完成之前。这是大多数人的默认曲线 动画。
EaseIn 缓入曲线会导致动画缓慢开始,然后 随着它的进展加快。
EaseOut 缓出曲线会使动画快速开始,并且 然后在完成时放慢速度。
希望这对您有所帮助,如果有任何疑问,请告诉我。
答案 1 :(得分:1)
您可以使用self.layer.speed
平滑降低动画速度
你可以这样做
注意:您需要在此处进行一些修改,而不是在xcode中进行测试
let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { (timer) in
self.layer.timeOffset = self.layer.convertTime(CACurrentMediaTime(), from: nil)
if self.layer.speed == 0 { timer.invalidate() }
self.layer.beginTime = CACurrentMediaTime()
self.layer.speed -= 0.5
}
timer.fire()
希望它有用