0

我无法在我的视图控制器之间异步加载图像。我有一个 tableView 控制器,当您单击一行时,它会打开一个集合视图控制器。当集合视图打开时,它会挂起一段时间,因为图像是从 Internet 下载的。

我将以下代码放在collectionView:cellForItemAtIndexPath:中,但这会导致同步加载,并使程序滞后。

-(UICollectionViewCell *) collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath{

  static NSString *CellIdentifier = @"CollectionCell";
  CollectionCell *cell = [cv dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
  NSData *imageData = [NSData dataWithContentsOfURL:[self.theImage objectAtIndex:indexPath.row]];
  cell.itemImage.image = [UIImage imageWithData:imageData];

  return cell;
}

我的问题是,我在哪里以及如何实现代码,以便集合视图在图像下载时加载空单元格(然后在下载后出现)?

我尝试使用大中央调度,但我无法弄清楚。如果有人可以帮助我指出正确的方向,我将不胜感激。

4

1 回答 1

0

对于那种延迟加载,我总是使用:

https://github.com/rs/SDWebImage

当我想在表/集合视图等中异步加载图像时,这解决了我的大部分问题。

它支持缓存已经下载的图像,只是省去了很多麻烦。

于 2013-02-08T07:59:59.457 回答