tableviewcell中的collectionview在重用发生时显示错误的数据

时间:2015-10-30 12:49:08

标签: ios swift uitableview uicollectionview

我在重用tableViewCells时遇到了问题。

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

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

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

有人建议在哪里触发正确的重装?

BR 多米尼克

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

可能您可以在my the same question下找到答案

  

这可能是由于UITableView中单元的重用系统。

     

您应该在tableView(_ tableView:UITableView,   cellForRowAt indexPath:IndexPath)-> UITableViewCell   配置您的单元。这样,每次重复使用单元格时,   其内容。

     

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