2016-03-18 93 views
0

我正在使用this guyGif類創建一個Gif UIImagehttps://github.com/mayoff/uiimage-from-animated-gifUIImage Gif加載委託?

與此加載:

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

的事情是,它需要時間,大量的時間,象7那樣秒鐘,直至你看到的圖像。

我想以某種方式預加載它,或者至少在完成加載時獲得委託。

我在這裏有什麼選擇?

回答

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,但它不會鎖定用戶界面,使用戶可以做,而GIF負載的東西。