首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

animationDidStop方法的多个CAAnimations?

在iOS开发中,animationDidStop方法是一个常用的动画结束后的回调方法。当我们使用多个CAAnimation对象进行动画时,我们可以使用animationDidStop方法来检测每个动画的结束。

首先,我们需要创建多个CAAnimation对象,并为每个对象设置相应的动画属性。例如,我们可以创建一个旋转动画和一个缩放动画:

代码语言:swift
复制
let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
rotationAnimation.toValue = CGFloat.pi * 2.0
rotationAnimation.duration = 2.0

let scaleAnimation = CABasicAnimation(keyPath: "transform.scale")
scaleAnimation.toValue = 1.5
scaleAnimation.duration = 2.0

接下来,我们可以将这些动画添加到相应的CALayer对象中:

代码语言:swift
复制
let layer = view.layer
layer.add(rotationAnimation, forKey: "rotationAnimation")
layer.add(scaleAnimation, forKey: "scaleAnimation")

现在,我们需要实现animationDidStop方法来检测动画的结束。我们可以使用CAAnimation的代理方法来实现这个功能:

代码语言:swift
复制
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
    if let key = anim.value(forKey: "key") as? String {
        print("Animation \(key) stopped")
    }
}

最后,我们需要将代理设置为当前对象,并为每个CAAnimation对象设置代理:

代码语言:swift
复制
layer.delegate = self

rotationAnimation.delegate = self
scaleAnimation.delegate = self

现在,每当一个动画结束时,animationDidStop方法都会被调用,并打印出相应的动画名称。这样,我们就可以使用animationDidStop方法来检测多个CAAnimation对象的动画结束。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券