2016-06-25 12 views
0

Ich versuche, Höhe und Breite der Zelle nach Höhe und Breite des Bildes von URL laden, aber Problem in Diese Lösung benötigt zu viel Zeit, um die Höhe und Breite für mehrere Bilder zu berechnen, so dass die Ladezeit des View-Controllers zunimmt, da die Höhe und Breite der Zelle vor dem Weiterleiten an den View-Controller festgelegt wird. Wenn Sie eine alternative Lösung haben, helfen Sie bitte.Ladehöhe von collectionview Zelle dynamisch nach Höhe des Bildes vom Server, aber es dauert zu viel Zeit, um Höhe zu erhalten

+0

Wie berechnen Sie die Breite und Höhe? Laden Sie alle Bilder herunter und finden Sie ihre Höhe? –

+0

Ja, ich mache das gleiche. – Lalit

+0

Wenn Bilder auf Ihren eigenen Servern gehostet werden, ist das bessere Muster das Bereitstellen eines Webdienstes, der die Bildergröße und die URL an Sie sendet. Sie können also die Datenquelle Ihres TableViews basierend auf den Daten erstellen, die Sie vom Webservice erhalten, und dann die Bilder mit einem Lazy-Mechanismus laden. Übrigens, während die Benutzer nicht auf das Herunterladen aller Bilder warten, können Sie die Höhe anhand der von Ihrem Webservice abgerufenen Daten festlegen. –

Antwort

0

ich Sie geben Antwort in zwei Worten :: „Use GCD“

Es ist einzige Lösung für dieses Problem GCD vereinbaren unten wie (Wenn Sie nicht bewusst über diese Prüfung Tutorial über GCD sind) ::

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {() -> Void in 

    // load image from server (Code taking long time to load) in your case images 


    dispatch_async(dispatch_get_main_queue(), {() -> Void in 

    //display images or any other task which is referred as view things 
    }) 
}) 

Wenn meine Antwort hilfreich ist, geben Sie mir Zeichen.