我通过调用dequeueReusableCellWithReuseIdentifier:
获取UICollectionView的单元格。我想设置一些特定的配置信息第一次时间我的单元格从此方法返回,而不是随后重新使用时。是否有一个钩子,我可以在集合视图单元格上运行“一次性”代码?
显然我每次都可以设置这些信息,或者使用布尔值来跟踪单元格是否已经初始化,但我想先知道是否有更清洁的方法。
答案 0 :(得分:2)
这很容易在单元格的实现中完成,但是数据源没有方便区分新创建的和重用的单元格。如果您的配置必须由数据源提供,那么数据源可能需要检查该单元是否已经配置。
将创建一次单元格,以便您可以使用init
或awakeFromNib
设置一些初始状态。然后,单元格在重复使用时会调用prepareForReuse
,允许您执行每次使用所需的任何更改。
答案 1 :(得分:1)
我最终解决这个问题的方法是将我自己的视图放在带有视图标记的通用UICollectionViewCell中。然后,当我去deque我的单元格时,我使用viewWithTag拉出视图。如果我没有回来,这是第一次运行此代码,所以我可以正常使用我自己的构造函数初始化我的视图。这似乎比在单元格实现中跟踪布尔值要好一些。