2016-04-05 22 views
1

Bazı web URL'lerinden görüntüleri UITableViewCell'a yüklüyorum ve bu görüntüler resim başına yaklaşık 80-100 kb boyutunda. Hiçbir zaman sınırlı sayıda satır içermediğinden, görüntü eşzamansız olarak but when i scroll the tableview, images start again downloading. Can i get rid of this'u indirdiğimde her şey iyi çalışıyor. Bir kereliğine url'den indirilen resimlerin bir kez daha indirilmemesini istiyorum, çünkü görüntüler tekrar indirmeye başladığında kullanıcılar için rahat etmiyor.iOS UITableViewCell URL'sinden Görüntüler

ben CellforRowAtIndexPath görüntüleri yüklemek için kod aşağıda kullanıyorum: Sen SDWebImage kullanmalıdır

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

SDWebImage'ı kullanın ve ilk indirme işleminden sonra önbellek yükleyip yükleyin.https: //github.com/rs/SDWebImage –

cevap

0

cihazınızda görselin önbelleğe ve aynı görüntü sunucudan geldiyse o zaman yerel cihazdan yüklenecektir.

  1. Projenize SDWebImage ekleyin.
  2. ithalat <SDWebImage/UIImageView+WebCache.h> başlık

    sonra cellForItemAtIndexPath de kodunun altına ekleyin: Bu bir avantaj üçüncü parti kütüphane önbellekte görüntüyü saklamak için çünkü

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

Daha iyi bunun için SDWebImageCache faydalanmak. Bir kez indirdikten sonra görüntüler otomatik olarak önbellekten alınacaktır.

SDWebImageCache

0

görüntüyü indirin belge dizine koydu ve belge dizini içeriyorsa görüntü kontrolünü indirmeden önce bunu yapabilir isterseniz görüntü daha sonra aksi URL'ye

0

indirmek oradan yük kendin. Görüntülerinizi kaydetmek için NSCache'yi kullanabilirsiniz. NSCache NSMutableDictionary gibidir (resminizi tuşa göre kaydedin). Ve sonra kontrol edebilirsiniz. Anahtar için görüntünüzün yolunu kullanabilirsiniz. Ancak, SDWebImage'u kullanmanızı da öneririz.