移除 CoreGraphics 动画
Remove CoreGraphics Animation
如何使用 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")
永远不会解析为真。
完成后如何删除动画?
CAAnimation
有一个名为 isRemovedOnCompletion
的 属性,默认为 true
这意味着您的动画完成后将从渲染树中删除。我想这就是为什么 anim == myView.layer.animation(forKey: "fade")
没有解析为 true
因为它已经被删除了。
如何使用 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")
永远不会解析为真。
完成后如何删除动画?
CAAnimation
有一个名为 isRemovedOnCompletion
的 属性,默认为 true
这意味着您的动画完成后将从渲染树中删除。我想这就是为什么 anim == myView.layer.animation(forKey: "fade")
没有解析为 true
因为它已经被删除了。