我知道这是非常常见的问题。我已经看到很多人在这里问这类问题,但我似乎仍然无法做到正确。
我有一个带图片的UICollectionView。我是从Facebook获取图片所以我使用SDWebImage加载它们。
直到这里一切正常。
用户可以上传他拍摄的照片。所以,直到上传过程完成并且图片上传到Facebook,我希望显示本地图像,但是有一个图层(不同的alpha,活动等等),一旦我从服务器收到通知,新的图像来自Facebook正在取代当地的。
我的问题是,在将本地图像添加到带图层的collectioView后,更多单元格正在显示此图层,并且不时向上滚动时,新图像会发生变化。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
PictureCell* cell = (PictureCell *)[_collectionView dequeueReusableCellWithReuseIdentifier:[PictureCell reuseIdentifier] forIndexPath:indexPath];
Picture *picture=(Picture *)[_campaign.pictures objectAtIndex:indexPath.row];
//If the picture is being uploaded, add the image from the local image property and set the blur layer
if (!picture.facebookPicture) {
cell.pictureImageView.image = picture.image;
[cell TaggleBlur:YES];
}
else
{
[cell.pictureImageView sd_setImageWithURL: [NSURL URLWithString:picture.facebookPicture.source ]placeholderImage:[UIImage imageNamed:@"actionBar_pico_icon"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
NSArray *visibleIndexPaths = [_collectionView indexPathsForVisibleItems];
if (error==nil) {
if ([visibleIndexPaths containsObject:indexPath]) {
cell.pictureImageView.image = image;
[cell TaggleBlur:NO];
}
}
}];
}
return cell;
}