当滚动浏览UICollectionView时,似乎cellForItemAtIndexPath
中的所有内容都不会被一致地调用。我想知道是否因为细胞在方法完成之前被回收了。
例如(我正在使用AFNetworking的UIImageView类别):
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
THMovieCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
NSNumber* position = [[NSNumber alloc] initWithInteger:indexPath.row + 1];
THMovie* movie = [self.Movies objectForKey:position];
if (movie.ImageUrl) {
[cell.Cover setImageWithURL:movie.ImageUrl];
}
cell.Title.text = movie.Title;
return cell;
}
...但是,当我的自定义单元格中的cell.Title
UILabel始终更改时,图像不是。
提高快速滚动细胞的性能的最佳方法是什么?
答案 0 :(得分:0)
如果不了解THMovieCell
内部结构,但很难说清楚。您将图片网址设置为movie.ImageUrl
。如果它是一个远程URL并且其图像尚未缓存,那么封面的缓慢更新是不可避免的,因为它必须加载此图像。另一个可能的原因是图像尺寸。如果您在屏幕上挤压了10张图像1024x1024,这可能会导致滚动时滞后。