2016-04-05 12 views
1

Ich lade Bilder in meiner UITableViewCell von einer Web-URL und diese Bilder sind in der Größe rund 80-100 kb pro Bild. Alles funktioniert gut, wenn ich Bilder asynchron but when i scroll the tableview, images start again downloading. Can i get rid of this lade, da ich nur eine begrenzte Anzahl von Zeilen habe. Ich möchte, wenn Bilder von URL-Download einmal nicht erneut heruntergeladen werden sollten, da es die Ansicht für Benutzer nicht bequem macht, wenn Bilder erneut heruntergeladen werden.iOS UITableViewCell Bilder von URL

ich unten Code verwenden Bilder in CellforRowAtIndexPath zu laden:

dispatch_async(dispatch_get_global_queue(0,0), ^{ 
    NSData * data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:url]; 
    if (data == nil) 
     return; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     cell.eventImage.image= [UIImage imageWithData:data]; 

    }); 
}); 
+1

Verwenden Sie SDWebImage es Cache-Image und laden Sie schnell nach dem ersten Download.https: //github.com/rs/SDWebImage –

Antwort

0

Sie sollten SDWebImage verwenden, welches Bild auf dem Gerät zwischengespeichert werden und wenn sein Bild von einem Server kam es dann von Ihrem lokalen Gerät laden.

  1. Fügen Sie SDWebImage Ihrem Projekt hinzu.
  2. Import <SDWebImage/UIImageView+WebCache.h> Header

    dann unter Code bei cellForItemAtIndexPath hinzufügen:

    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"your image URL"] 
         placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
    
0

Bessere Nutzung von SDWebImageCache dafür machen, weil dies eine vorteilhafte Bibliothek Dritter das Bild im Cache zu speichern. Nach dem Herunterladen werden die Bilder automatisch aus dem Cache genommen.

SDWebImageCache

0

Wenn Sie Bild, um es Verzeichnis in das Dokument setzen Laden und bevor Sie Bildprüfeinheit herunterladen, wenn Dokumentenverzeichnis enthält Bild, um es dann dort laden von ansonsten von URL herunterladen

0

Wenn Sie möchten, können Sie es machen dich selber. Sie können NSCache verwenden, um Ihre Bilder zu speichern. NSCache ist wie NSMutableDictionary (speichern Sie Ihr Bild nach Schlüssel). Und dann kannst du es überprüfen. Für den Schlüssel können Sie den Pfad zu Ihrem Bild verwenden. Aber ich empfehle Ihnen auch, SDWebImage zu verwenden.