Swift:如何在CAKeyFrameAnimation完成时设置动作?

4

我正在类似于这个页面上展示CAKeyFrameAnimation。我想在动画结束时执行一个操作,但我不知道如何实现。我查看了CAKeyFrameAnimation文档,并没有找到关于completionHandler或其他任何信息,我唯一能想到的是设置一个计时器来处理动画时间长度后的所有事情。我认为肯定有更好的方法来通知动画已经完成,但我一直没有找到更好的解决方案。

2个回答

12

Swift

使用以下代码来设置 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()

7

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


啊哇,我总是忘记在文档中查找链表 :/ 感谢您的帮助! - NumberOneRobot
@user1493950,是的,很容易忘记这一点。 - rdelmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接