如何使用 animationDidStop 删除动画?
我应用动画
let animationTwo = CABasicAnimation(keyPath: "opacity")
animationTwo.delegate = self
animationTwo.fromValue = 0.0
animationTwo.toValue = 1.0
animationTwo.duration = 1.0
animationTwo.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)
myView.layer.add(animationTwo, forKey: "fade")
然后尝试删除它
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
if anim == myView.layer.animation(forKey: "fade") {
myView.layer.removeAnimation(forKey: "fade")
}
}
但是 anim == myView.layer.animation(forKey: "fade")
永远不会解析为 true。
动画完成后如何删除?
最佳答案
CAAnimation
有一个名为 isRemovedOnCompletion
的属性,默认为 true
这意味着您的动画在完成后将从渲染树中移除。我想这就是为什么 anim == myView.layer.animation(forKey: "fade")
没有解析为 true
因为它已经被删除了。
关于ios - 移除 CoreGraphics 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57744485/