我正在类似于这个页面上展示CAKeyFrameAnimation。我想在动画结束时执行一个操作,但我不知道如何实现。我查看了CAKeyFrameAnimation文档,并没有找到关于completionHandler或其他任何信息,我唯一能想到的是设置一个计时器来处理动画时间长度后的所有事情。我认为肯定有更好的方法来通知动画已经完成,但我一直没有找到更好的解决方案。
我正在类似于这个页面上展示CAKeyFrameAnimation。我想在动画结束时执行一个操作,但我不知道如何实现。我查看了CAKeyFrameAnimation文档,并没有找到关于completionHandler或其他任何信息,我唯一能想到的是设置一个计时器来处理动画时间长度后的所有事情。我认为肯定有更好的方法来通知动画已经完成,但我一直没有找到更好的解决方案。
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()
您没有查找继承链。CAAnimation
有一个委托属性和一个委托方法animationDidStop:finished:
,您可以使用它来检测动画的结束。