1

キャッシュと遅延読み込みに SDWebImage Library を使用しています。しかし、別のセルの画像を表示していることがあることがわかりました。

詳細シーン

  • UIImageView と Labels を含むセルを持つ CollectionView があります。
  • ImageView には、ユーザーの画像とその
    名前のラベルが含まれています。

しかし、時々 Imageview にロードされた画像は異なる画像を持っています。

まあ言ってみれば

Index  Name  Image
0      nameA  A
1      nameB  B
2      nameC  C
3      nameD  B

したがって、ここではインデックスにnameDがあるため、画像はb「D」である必要がありますが、nameBの画像、つまり「B」が表示されています

これは私が使用したコードです

      if ([aMutDict objectForKey:@"picture_url"])
        {
            [[SDWebImageManager sharedManager]downloadWithURL:[NSURL URLWithString:[aMutDict objectForKey:@"picture_url"]] options:SDWebImageProgressiveDownload progress:Nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
                if(image){
                    [cell.imgProfilePic setImage:image];
                }else{
                    [cell.imgProfilePic setImage:ApplicationDelegate.gblImgPlaceholder];
                }
            }];

        }
4

2 に答える 2

0

Midhun の Answer を実装した後、 SDWebImage のNew libraryに従って別の Method を見つけました。new UIImageView+WebCache.hに成功/失敗ブロックがないため

だからこれは私のために働く。

    if ([aMutDict objectForKey:@"picture_url"])
    {
        [cell.imgProfilePic setImageWithURL:[NSURL URLWithString:[aMutDict objectForKey:@"picture_url"]] placeholderImage:ApplicationDelegate.gblImgPlaceholder options:SDWebImageRefreshCached completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
            if(error){
                //Image Not Loaded
            }
            if(image)
            { 
                // Image Loaded
            }

        }];

    }
于 2014-05-29T09:20:43.027 に答える