检查 UICollectionViewCell 是否已经创建以避免重用
Check if UICollectionViewCell already created to avoid reuse
我会长话短说。
情况
假设我有 5 个单元格,我正在对放置在单元格内的 UIView(作为子视图)执行某种 "method"。
我需要这个 "method" 只发生一次(当单元格初始化时),并避免这个 "method" 在 cellForItemAtIndexPath
.
上再次发生
我试过的
- 在
UICollectionViewCell
子类中,声明布尔值 var alreadyCreated = false
并在 cellForItemAtIndexPath
内部检查 属性 是否为 False
- 意味着它尚未创建.而不是 运行 "method" 并将属性更改为 True
。 问题 - 因为重用甚至对于尚未创建的单元格,它将 属性 alreadyCreated
设置为 true。
有什么建议即使在重复使用单元格时如何确定单元格是否已经创建?
谢谢大家!
这不是最好的方法,但您可以在方法已经完成的地方存储单元格的索引。当 cellForItemAtIndexPath
时,您可以检查当前 indexPath 是否包含在数组中。如果你只有一个部分,你可以只存储 Int
个。
好的,我终于明白问题是什么了!
这实际上非常简单,因为跟踪它的列表已经存在。就是数据模型。
因此,在 cellForRowAtIndexPath:
中,您正在查看此 section/row 的数据模型并使用该信息填充单元格。
好吧,在该数据模型中,您还需要有一个以 false
开头的 Bool 值,并且(在 cellForRow
中)如果它是 false
,则将其切换为 true
并进行一次性配置。这样,您最终只为 table.
的每个明显行执行此任务一次
真的,这和我用需要从互联网下载的图片填充单元格时完全一样。我如何知道我是否已下载该行的图像?因为图像就在模型中!如果没有,我知道我需要开始下载它。如果 是 那里,我已经完成了这项工作,我只是提供图像。因此每行的图像最多下载一次。
我会长话短说。
情况
假设我有 5 个单元格,我正在对放置在单元格内的 UIView(作为子视图)执行某种 "method"。
我需要这个 "method" 只发生一次(当单元格初始化时),并避免这个 "method" 在 cellForItemAtIndexPath
.
我试过的
- 在
UICollectionViewCell
子类中,声明布尔值var alreadyCreated = false
并在cellForItemAtIndexPath
内部检查 属性 是否为False
- 意味着它尚未创建.而不是 运行 "method" 并将属性更改为True
。 问题 - 因为重用甚至对于尚未创建的单元格,它将 属性alreadyCreated
设置为 true。
有什么建议即使在重复使用单元格时如何确定单元格是否已经创建?
谢谢大家!
这不是最好的方法,但您可以在方法已经完成的地方存储单元格的索引。当 cellForItemAtIndexPath
时,您可以检查当前 indexPath 是否包含在数组中。如果你只有一个部分,你可以只存储 Int
个。
好的,我终于明白问题是什么了!
这实际上非常简单,因为跟踪它的列表已经存在。就是数据模型。
因此,在 cellForRowAtIndexPath:
中,您正在查看此 section/row 的数据模型并使用该信息填充单元格。
好吧,在该数据模型中,您还需要有一个以 false
开头的 Bool 值,并且(在 cellForRow
中)如果它是 false
,则将其切换为 true
并进行一次性配置。这样,您最终只为 table.
真的,这和我用需要从互联网下载的图片填充单元格时完全一样。我如何知道我是否已下载该行的图像?因为图像就在模型中!如果没有,我知道我需要开始下载它。如果 是 那里,我已经完成了这项工作,我只是提供图像。因此每行的图像最多下载一次。