Lat*_*ate 2 animation completionhandler swift
我已经在我的项目中安装了 Gifu 来管理一些 gif 动画。
有谁知道如何在动画的 1 个循环完成时运行代码?
我似乎让完成处理的代码与动画同时运行。
这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
animatedDone.animate(withGIFNamed: "animatedTick.gif")
animatedDone.prepareForAnimation(withGIFNamed: "animatedTick.gif", loopCount: 1) { (Void) in
saveAndExit()
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
此回调仅用于准备动画。这不是动画完成时调用的回调。我发现这种情况的解决方案是在动画持续时间后调度队列。
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()
})
})
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
307 次 |
最近记录: |