繁体   English   中英

UICollectionView不重用单元格

[英]UICollectionView not to reuse cell

我有许多具有不同标识值的单元格。 例如“棒球室”,“足球室”和“ AD室”。 对我来说,重用“棒球室”“足球室”是可以的。 但是“广告单元”上有一些动画效果,因此如果用户滚动出来,我不想重新加载它。

因此,有没有一种方法可以使collectionview不重用其单元格?

谢谢!

抱歉,请更新以澄清。

在这里,我在集合视图中找到了一些单元格类型:

  1. 棒球室:显示棒球新闻
  2. 足球室:显示足球新闻
  3. 广告单元:重复显示AD_1.jpg-> AD_2.jpg-> AD_3.jpg ...

如果收集视图每次在屏幕外重新加载“ AD单元”,则再次可见。 然后我停止动画并在重新加载时释放它。 用户可能没有机会看到最后一张AD图片。 所以我需要一种方法来停止仅对AD单元的重用

谢谢。

您可以在其他实例中缓存重单元对象,只需在UICollectionViewDataSource collectionView上: (UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath函数即可自行加载单元。 不要使用dequeueReusableCellWithReuseIdentifierdequeueReusableSupplementaryViewOfKind 。但是,所有内存管理都应注意。

因此,在您的情况下,您将“ AD单元”缓存在另一个缓存的类中,在UICollectionViewDataSource委托中,只需使用缓存类中的缓存的单元对象即可。

信息不足。

通常,您希望针对不同类型的单元(具有不同结构)使用不同的单元标识,但对于具有相同结构的单元则使用相同的ID。 动画也是如此。

使用多个相同类型的电池而不进行回收会导致大量的“内存搅动”,这是一个坏主意。

除非在屏幕外,否则一个单元将无法重复使用,此时应停止动画播放。 然后,您可以完全准备一个回收单元以供重用,包括设置新动画。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM