检查 UICollectionViewCell 是否已经创建以避免重用

Check if UICollectionViewCell already created to avoid reuse

我会长话短说。

情况

假设我有 5 个单元格,我正在对放置在单元格内的 UIView(作为子视图)执行某种 "method"。 我需要这个 "method" 只发生一次(当单元格初始化时),并避免这个 "method" 在 cellForItemAtIndexPath.

上再次发生

我试过的

有什么建议即使在重复使用单元格时如何确定单元格是否已经创建?

谢谢大家!

这不是最好的方法,但您可以在方法已经完成的地方存储单元格的索引。当 cellForItemAtIndexPath 时,您可以检查当前 indexPath 是否包含在数组中。如果你只有一个部分,你可以只存储 Int 个。

好的,我终于明白问题是什么了!

这实际上非常简单,因为跟踪它的列表已经存在。就是数据模型。

因此,在 cellForRowAtIndexPath: 中,您正在查看此 section/row 的数据模型并使用该信息填充单元格。

好吧,在该数据模型中,您还需要有一个以 false 开头的 Bool 值,并且(在 cellForRow 中)如果它是 false,则将其切换为 true 并进行一次性配置。这样,您最终只为 table.

的每个明显行执行此任务一次

真的,这和我用需要从互联网下载的图片填充单元格时完全一样。我如何知道我是否已下载该行的图像?因为图像就在模型中!如果没有,我知道我需要开始下载它。如果 那里,我已经完成了这项工作,我只是提供图像。因此每行的图像最多下载一次。