我有许多具有不同身份价值的细胞。例如“棒球细胞”,“足球细胞”和“AD细胞”。 重复使用“棒球细胞”“足球细胞”对我来说没问题。 但是“AD单元格”对它有一些动画效果,所以如果用户滚动,我不想重新加载它。
那么,有没有办法让collectionview不重用它的单元格呢?
谢谢!
抱歉,澄清更新。
这里我在集合视图中有一些单元格类型:
如果集合视图每次在屏幕外重新加载“AD单元格”,则再次可见。 我停止动画并在重新加载时释放它。用户可能没有机会看到最后的AD图片。 所以我需要一种方法来阻止重复使用AD单元
感谢。
答案 0 :(得分:1)
您可以在其他实例中缓存重型单元对象,只需在UICollectionViewDataSource collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
函数中,即可自行加载单元格。
不要使用dequeueReusableCellWithReuseIdentifier
或dequeueReusableSupplementaryViewOfKind
。但是所有内存管理都应该关注。
所以在你的情况下,你在另一个缓存类中缓存“AD单元格”,在UICollectionViewDataSource
委托中只使用缓存类中的缓存单元格对象。
答案 1 :(得分:0)
信息不足。
您通常需要针对不同类型的细胞(具有不同结构)的不同细胞识别,但对于具有相同结构的细胞,需要相同的ID。这也适用于动画。
使用相同类型的多个单元而不进行回收可能会导致大量的内存流失",这是一个坏主意。
一个单元格不会被重复使用,直到它不在屏幕上,此时你应该停止动画。然后,您可以完全准备再循环单元格以供重复使用,包括设置新动画。