UIImage Gif加载代表?

时间:2016-03-18 17:54:52

标签: ios swift uiimageview gif

我正在使用this guyGif课程来创建Gif UIImagehttps://github.com/mayoff/uiimage-from-animated-gif

加载它:

let fileUrl = NSURL(string: "some url" as! String)
let Gif = UIImage.animatedImageWithAnimatedGIFURL(fileUrl!)
imageview.image=Gif

事情是需要时间,很多时间,比如你看到图像需要7秒钟。

我想以某种方式预加载它,或者至少在完成加载时获得代理。

我有什么选择?

1 个答案:

答案 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加载时执行操作。