2016-03-18 15 views
0

Ich verwende this guy 's Gif Klasse, um ein Gif UIImage zu erstellen. https://github.com/mayoff/uiimage-from-animated-gifUIImage Gif loading delegate?

lädt es mit diesem:

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

Die Sache ist die, dass es Zeit braucht, viel Zeit, wie 7 Sekunden, bis Sie das Bild zu sehen.

Ich möchte es in gewisser Weise vorab laden, oder zumindest einen Delegierten erhalten, wenn das Laden beendet ist.

Was sind meine Optionen hier?

Antwort

1

Sie können Grand Central Dispatch (oder GCD) verwenden, um diese Aufgabe im Hintergrund auszuführen.

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 
    } 
} 

Dies dauert noch so lange es die gif dauert zu laden, aber es wird nicht die Benutzeroberfläche sperren, damit der Benutzer die Dinge während der gif Lasten tun.