【发布时间】:2016-06-07 04:24:12
【问题描述】:
我使用下面的代码用图像填充集合视图单元格。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"Cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100];
recipeImageView.image = nil;
if ([imageArray count] >0){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
NSData *data0 = [NSData dataWithContentsOfURL: [NSURL URLWithString:[imageArray objectAtIndex:indexPath.row]]];
UIImage *image = [UIImage imageWithData: data0];
dispatch_sync(dispatch_get_main_queue(), ^(void) {
recipeImageView.image = image;
});
});
}
[spinnerShow stopAnimating];
return cell;
}
问题是,当我滚动图像时,图像会闪烁并闪烁。为什么呢?如何使这些图像稳定而不闪烁?
【问题讨论】:
-
在模拟器上看到了吗?如果是,请确保您通过按 command+1 以全尺寸查看模拟器。
-
您是否覆盖了包含集合视图的视图控制器中的任何滚动视图方法?
-
因为单元格是重复使用的,并且您每次都下载所以它会轻弹。下载后将其放入文档目录并在下载之前检查文档目录中是否可用,然后从那里使用它,
标签: ios objective-c uicollectionview