【问题标题】:collectionview in tableviewcell displays wrong data when reuse happens当重用发生时,tableviewcell 中的 collectionview 显示错误的数据
【发布时间】:2015-10-30 12:49:07
【问题描述】:

重用tableViewCells时遇到问题。

我有一个 TableView。每个 tableviewcell 都包含一个 UIView ,其中包含一个集合视图。数据源和委托设置为该视图。该集合视图的每个单元格都显示一个图像。

当我现在滚动我的表格视图时,表格视图的单元格被重复使用。在 cellForRowAtIndexPath 中,我正在设置单元格的值(即也用于集合视图的委托和数据源)。

但是,重复使用的单元格不会更新 collectionviewcell 中包含的图像。我已经为 self.setNeedsDisplay() 尝试了不同的位置,但没有成功。

有人建议在哪里触发正确的重新加载?

BR 多米尼克

【问题讨论】:

  • 除了更改集合视图委托和数据源之外,您还需要在集合视图上调用 reloadData

标签: ios swift uitableview uicollectionview


【解决方案1】:

您应该在 cellForItemAtIndexPath 中设置数据。但是您还应该覆盖单元格中的 prepareForReuse() 方法,并重置那里的所有内容 - 这将在重用单元格之前被调用。例如,在您的单元格中,您应该将图像设置为 nil,将委托设置为 nil。

【讨论】:

    【解决方案2】:

    或许你可以在my the same question下找到答案

    这可能是因为 UITableView 中单元格的重用系统。

    你应该在 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 你在哪里 配置您的单元格。这样,每次重用一个单元格时,您都会更新 它的内容。

    您还必须清理数据源和委托,因为它是 重复使用的单元格,因此它可能已经与另一个值一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 2018-04-17
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多