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