我知道如何重复使用细胞,我知道如何不重复使用细胞,但这不是我所要求的。
我需要的是仍在重复使用某些细胞但却不那么频繁。
让我们说我在屏幕上显示10个单元格(每个单元格中都有动画GIF文件,因此设置单元格正在消耗),UICollectionView
现在正在做什么为每个正在呈现的单元分配10块内存,并在新单元到来时重新使用内存。这使得重用过于频繁,因此它一直在设置单元格并使UICollectionView
的滚动有点慢。
以下是我使用的代码:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
ItemView *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ITEM_VIEW_REUSE_ID forIndexPath:indexPath];
ItemData *itemData = [[_items objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
[cell setItemData:itemData];
return cell;
}
我在想,有没有办法可以修改内部重用系统。就像为每个呈现的单元格分配30块内存和一些甚至不呈现的单元格一样,所以它不是一直设置单元格,我相信这会加速我的应用程序的性能。