下载图像后重新加载CollectionView的单元格

时间:2014-10-19 21:48:06

标签: ios objective-c xcode uicollectionview uicollectionviewcell

我使用库SDWebImage下载图像。

我将下载的图像设置为cellForItemAtIndexPath中的UICollectionViewCell,但是在滚动CollectionView之后图像是可见的。我认为我必须重新加载那个特定的细胞,但不知道如何。

这是UICollectionViewCell的代码

[imgView setImageWithURL:[NSURL URLWithString:imgUrl]
                               placeholderImage:[UIImage imageNamed:@"YourPlaceholder.png"]
                                      completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                                          //... completion code here ...
                                          cell.image = imgView.image;
                                          //Reload The cell to see the image downloaded ¿HOW?
                                      }];

MJCollectionViewCell.m的代码

- (void)setImage:(UIImage *)image
{
    // Store image
    self.MJImageView.image = image;

    // Update padding
    [self setImageOffset:self.imageOffset];
}

知道怎么解决吗?

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。

解决方案:[cell setNeedsLayout];

答案 1 :(得分:1)

你试过这样的事吗?

dispatch_async(dispatch_get_main_queue(), ^{
    cell.image = imgView.image;
});

或使用- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths重新加载

[collectionView reloadItemsAtIndexPaths:YourIndexPath];

答案 2 :(得分:0)

您必须升级SDWebImage,您的版本不适用于iOS8。 下载最后一个SDWebImage库,改为使用sd_setImageWithURL方法。