我想弄清楚为什么UIView.animate
无法正常工作。
我知道UIView.animateKeyframes
我可以将多种类型的动画链接在一起,但在这种情况下,我只会从当前大小transform
执行一个动画0.0
。
在此转换之前,微调器图像已使用CABasicAnimation
旋转:
let spinAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
spinAnimation.toValue = .pi * 2.0 // 360º spin
spinAnimation.duration = 1.4
spinAnimation.repeatCount = Float.greatestFiniteMagnitude // Repeat forever in loops.
spinAnimation.isCumulative = true
spinAnimation.isRemovedOnCompletion = false
self.spinnerImageView.layer.add(spinAnimation, forKey: self.spinnerAnimationKey)
UIView KeyFrame动画
UIView.animateKeyframes(withDuration: Constants.AnimationDuration.standard, delay: 0.0, options: .calculationModeLinear, animations: {
UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.4, animations: {
self.spinner.transform = CGAffineTransform(scaleX: 0.0, y: 0.0)
})
}) { (_) in
super.endRefreshing()
}
UIView动画
UIView.animate(withDuration: 0.4, delay: 0.0, options: .curveLinear, animations: {
self.spinner.transform = CGAffineTransform(scaleX: 0.0, y: 0.0)
}) { (_) in
super.endRefreshing()
}
关键帧动画按预期工作,它将动画图像缩小到0.0
,但标准动画只会导致图像消失。不应该以相同的方式行事,还是因为图像已经有一个CABasicAnimation层导致animate
无法正常工作?我更愿意使用.animate
,因为我只是在进行转换。