首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionView不重用单元

UICollectionView不重用单元
EN

Stack Overflow用户
提问于 2014-10-16 02:17:12
回答 2查看 3K关注 0票数 0

我有很多不同身份值的细胞。如“棒球细胞”、“足球细胞”、“广告细胞”等。对我来说,“棒球细胞”“足球细胞”的重用是可以的。但是"AD单元“有一些动画效果,所以我不想重新加载它,如果用户滚动出。

那么,是否有办法使集合视图不重用其单元呢?

谢谢!

对不起,更新以澄清。

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

  1. 棒球细胞:播放棒球新闻
  2. 足球细胞:显示足球新闻
  3. 广告细胞:显示AD_1.jpg -> AD_2.jpg -> AD_3.jpg.反复地

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

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-16 03:02:18

您可以在其他实例中缓存重单元格对象,只需在UICollectionViewDataSource collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath函数中缓存,就可以自行加载单元格。不要使用dequeueReusableCellWithReuseIdentifierdequeueReusableSupplementaryViewOfKind .But全内存管理,您应该关心。

因此,在您的示例中,您将"AD单元“缓存在另一个缓存类中,在您的UICollectionViewDataSource委托中,只需使用缓存类中的缓存单元对象。

票数 1
EN

Stack Overflow用户

发布于 2014-10-16 02:28:36

信息不够。

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

使用同一类型的多个单元而不进行回收会导致大量的“内存流失”,这是个坏主意。

一个细胞将不会被重复使用,直到它是离开屏幕,在这一点上,你应该停止动画。然后,您可以充分准备一个循环再用的细胞,包括建立一个新的动画。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26395172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档