Swift:如何设定CAKeyFrameAnimation完成时要执行的动作

Num*_*bot 3 animation objective-c ios swift

我使用CAKeyFrameAnimation的方式与在页面上使用的方式类似。我试图在动画的结尾处执行一个动作,但是我不确定该如何去做。我查看了CAKeyFrameAnimation文档,却没有看到关于完成处理程序的任何信息,我唯一想做的就是为动画长度设置一个计时器,然后处理所有动画。我认为必须有一些更好的方法来通知动画已完成,但是我还没有找到更好的解决方案。

Jef*_*ang 6

迅速

CATransaction.setCompletionBlock如下使用。

CATransaction.begin()
CATransaction.setCompletionBlock({
    view.isHidden = true
})

let animation = CAKeyframeAnimation(keyPath: "position")
animation.path = path

view.layer.add(animation, forKey: "moveIn")

CATransaction.commit()
Run Code Online (Sandbox Code Playgroud)


rde*_*mar 5

您没有查找继承链。CAAnimation具有一个委托属性和一个委托方法,animationDidStop:finished:可以用来检测动画的结束。