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

最佳答案

迅捷

如下使用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()

10-08 07:28