表格单元格中的集合视图。这是重用的错误

Posted

技术标签:

【中文标题】表格单元格中的集合视图。这是重用的错误【英文标题】:Collectionview in tableivew cell. this is bug of reuse 【发布时间】:2018-06-05 09:35:11 【问题描述】:

tableviewcell 中的集合视图。当 tableview 重用单元格时。 tableivewcell 中的collectionview 保持位置。这是错误?以及如何分开。示例:单元格 1 和单元格 10 是 collectionview(水平)。当我滚动单元格 1 时,单元格 10 也滚动相同的位置。请帮帮我。

【问题讨论】:

【参考方案1】:

创建一个Dictionary 来记住每个单元格的偏移量,例如:

var contentOffset: [Int: CGFloat] = [:]

当表格视图单元格从屏幕中删除时,存储您的集合视图的偏移量,例如

func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) 
    guard let cell = cell as? YouTableViewCell else 
        return
    

    contentOffset[indexPath.row] = cell.collectionView.contentOffset.x

现在当单元格即将显示时,恢复内容偏移量,如:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) 
    guard let cell = cell as? YouTableViewCell else 
        return
    

    cell.collectionView.contentOffset.x = contentOffset[indexPath.row] ?? 0

【讨论】:

【参考方案2】:

这不是一个错误,当表格单元被重用时,它也重用了滚动的集合视图的内容。继续谷歌搜索并查看链接:

ios 8 Swift - TableView with embedded CollectionView

https://medium.com/@gargankit476/multiple-collection-view-in-uitableview-ced7909a5af3

【讨论】:

以上是关于表格单元格中的集合视图。这是重用的错误的主要内容,如果未能解决你的问题,请参考以下文章

集合视图单元格中的多行标签在重用后中断

表格视图单元格中的集合视图

UITableViewCell 中的 UICollectionView 重用

如何通过单击更改集合视图单元格中的标签颜色

表格视图单元格中的 uicollectionview 出现错误:索引超出范围,为啥?

自定义表格视图单元格中的 JSON 缩略图图像