3

我在 UITableViewCell 中使用 UICollectionView 在 tableviewcell 中显示图像。在后台下载照片时,活动指示器应为动画且不显示图像。下载照片后,活动指示器应停止动画并显示照片。除了第一次显示第一个单元格外,一切正常。显示图像并且活动指示器保持动画。如果我滚动 collectionView,它适用于其他图像,当我滚动回第一张图像时,它也适用。仅在第一次显示第一张图片时

collectionview 内的单元格称为 PhotoCollectionView ,标题如下所示:

@interface PhotoCollectionCell : UICollectionViewCell

@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;

@end

cellForItemAtIndexPath 的代码

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"PhotoCollectionCell";
    PhotoCollectionCell *cell = (PhotoCollectionCell *)[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    cell.imageView.image = nil;

    UIImage *image = [thumbnails objectForKey:indexPath];
    if(!image) {
        [cell.activityIndicator startAnimating];
        if (self.pictureCollectionView.dragging == NO && self.pictureCollectionView.decelerating == NO)
        {
            [self startDownload:images[indexPath.row] forIndexPath:indexPath];
        }
    } else {
        [cell.activityIndicator stopAnimating];
        cell.imageView.image = image;
    }

    return cell;
}

我尝试了网上给出的几种解决方案,一切都在主线程上执行,所以我不知道该怎么办了。

帮助将不胜感激。提前致谢。亲切的问候...

4

0 回答 0