运行 岐阜完成动画时的代码

run code when Gifu has finished animating

我已经在我的项目中安装了 Gifu 来管理一些 gif 动画。

有谁知道在动画的 1 个循环结束时如何运行编码?

我似乎在动画的同时获得了完成处理代码运行ning。

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    animatedDone.animate(withGIFNamed: "animatedTick.gif")
    animatedDone.prepareForAnimation(withGIFNamed: "animatedTick.gif", loopCount: 1) { (Void) in
        saveAndExit()
    }

}

此回调仅用于准备动画。它不是在动画完成时调用的回调。我发现这种情况的解决方案是在动画持续时间后调度一个队列。

 override func viewDidLoad() {
    super.viewDidLoad()
    let animatedDone = GIFImageView()
    animatedDone.prepareForAnimation(withGIFNamed: "animatedTick.gif", loopCount: 1)


    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5, execute: {
        animatedDone.startAnimatingGIF()
        DispatchQueue.global().asyncAfter(deadline: .now() + 0.5 + animatedDone.gifLoopDuration, execute: { // dispatch main or global
            saveAndExit()
        })
    })
}