我有一个表视图,其中每个单元格都包含一个集合视图!
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个单元格(滚动时)
第一次加载时
滚动tableview时
//用于在tableview
的collectionview中存储数组func fillCollectionView(with array: [String]) {
self.collectionArr = array
self.collectionView.reloadData()
}
答案 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()
}