我的应用程序中有一个画廊,使用了 UICollectionView
。细胞大小约为 70,70。我正在使用存储在列表中的库中 ALAssetLibrary
中的 ALAssets
。
我正在使用通常的模式来填充单元格:
-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
mycell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
mycell.imageView.image = [[UIImage imageWithCGImage:[alassetList objectAtIndex:indexpath.row] thumbnail]];
return mycell;
}
我的画廊滚动时断断续续。我不明白这是为什么。我尝试添加一个 NSCache 来缓存缩略图(认为创建图像可能很昂贵)但这对性能没有帮助。
我希望 UI 能像普通应用一样流畅。
我现在怀疑它可能是 UICollectionViewCell prepareForReuse
中的某些东西阻止了 dequeueReusableCellWithReuseIdentifier
方法,但使用工具我无法找到它。
还有其他可能导致这种情况的原因吗?是否有一种“更快”的方式来准备 UICollectionViewCell
或以更快的方式dequeue
它们?
最佳答案
所以任何遇到滚动问题的人都应该做 this
在出队后添加这两行
cell.layer.shouldRasterize = YES;
cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
关于ios - UICollectionview 加载单元格时滚动不连贯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460655/