【问题标题】:Swift: How can I set an action to occur at the completion of a CAKeyFrameAnimationSwift:如何设置在 CAKeyFrameAnimation 完成时发生的动作
【发布时间】:2014-12-03 04:21:10
【问题描述】:

我使用 CAKeyFrameAnimation 的方式与在 this 页面上的使用方式类似。我试图在动画结束时发生一个动作,但我不确定我该怎么做。我浏览了 CAKeyFrameAnimation 文档,没有看到任何关于 completionHandler 或任何东西的信息,我唯一能想到的就是为动画长度设置一个计时器并处理之后的所有事情。我认为必须有更好的方法来获得动画已完成的通知,但我一直无法找到更好的解决方案。

【问题讨论】:

    标签: ios objective-c animation swift


    【解决方案1】:

    斯威夫特

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 天啊,我总是忘记在文档中查找链:/感谢您的帮助!
      • @user1493950,是的,很容易忘记这一点。
      猜你喜欢
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多