我正在使用this guy的Gif
课程来创建Gif UIImage
。 https://github.com/mayoff/uiimage-from-animated-gif
加载它:
let fileUrl = NSURL(string: "some url" as! String)
let Gif = UIImage.animatedImageWithAnimatedGIFURL(fileUrl!)
imageview.image=Gif
事情是需要时间,很多时间,比如你看到图像需要7秒钟。
我想以某种方式预加载它,或者至少在完成加载时获得代理。
我有什么选择?
答案 0 :(得分:1)
您可以使用Grand Central Dispatch(或GCD)在后台执行此任务。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
// This will happen in the background
let fileUrl = NSURL(string: "some url" as! String)
let gif = UIImage.animatedImageWithAnimatedGIFURL(fileUrl!)
dispatch_async(dispatch_get_main_queue()) {
// Always update UI on the main thread
imageview.image = gif
}
}
加载gif所需的时间仍然很长,但它不会锁定UI,因此用户可以在gif加载时执行操作。