UITableView中的CollectionView单元正在重复

时间:2017-10-24 08:48:28

标签: ios swift uicollectionview contentsize

我有一个表视图,其中每个单元格都包含一个集合视图!

1)在collectionview中只显示两个单元格,因为我的问题是当我们滚动tableview时,collectoinview单元格内容在tableview的许多其他单元格中重复

mycode的:

let tags = Tblarr[indexPath.row]["hashtags"] as! [String]
    if tags.count != 0
    {
        for var i in 0 ... tags.count - 1
        {
            if i < 2
            {
                cell.tagsView.addTag(tags[i])
                cell.collectionView.isHidden =   false
            }
        }
        if tags.count > 2
        {
            cell.lblCount.isHidden = false
            cell.lblCount.text = "+\(tags.count - 2)"
        }
        else
        {
            cell.lblCount.isHidden = true
        }
    }
    else{
        cell.lblCount.isHidden = true
        cell.collectionView.isHidden =   true
    }
    cell.fillCollectionView(with: cell.tagsView.tags)
    cell.widthConstraint.constant = cell.collectionView.contentSize.width

这里我只得到固定宽度的collectionview而没有根据内容大小设置宽度&amp; collectionview单元格在tableview的其他单元格中重复,即使单元格为1,它也会显示2个单元格(滚动时)

第一次加载时

when load for the first time

滚动tableview时

when tableview is scrolled

//用于在tableview

的collectionview中存储数组
func fillCollectionView(with array: [String]) {
    self.collectionArr = array
    self.collectionView.reloadData()
}

2 个答案:

答案 0 :(得分:1)

我不知道fillCollectionView做了什么,但看起来你没有考虑重复使用表视图单元格。因此,每次拨打fillCollectionView时,您都必须重置单元格内容或内容或集合视图。

答案 1 :(得分:0)

在tableview中重新加载collectionView

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { cell.fillCollectionView.reloadData() }

func fillCollectionView(with array: [String]) {
self.collectionArr.removeAll
self.collectionArr = array
self.collectionView.reloadData()

}