UITableView 内的 CollectionView 单元格重复
Posted
技术标签:
【中文标题】UITableView 内的 CollectionView 单元格重复【英文标题】:CollectionView cell inside UITableView is repeating 【发布时间】:2017-10-24 08:48:27 【问题描述】:我有一个表格视图,其中每个单元格都包含一个集合视图!
1) 在 collectionview 中只显示两个单元格,因为我的问题是当我们滚动 tableview 时,collectoinview 单元格内容在 tableview 的许多其他单元格中重复
我的代码:
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,没有根据内容大小设置宽度&collectionview单元格在tableview的其他单元格中重复,即使单元格是一个,它也会显示2个单元格(滚动时)
第一次加载时
tableview 滚动时
//用于将数组从tableview存储到collectionview中
func fillCollectionView(with array: [String])
self.collectionArr = array
self.collectionView.reloadData()
【问题讨论】:
【参考方案1】:在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()
【讨论】:
fillCollectionView 是用于存储数组的函数,其中也重新加载了collectionview fillCollectionView(with array: [Your String]) 在 cellForRowAt indexPath 中调用这个方法 在重新加载集合之前,您必须清除 collectionView 数组列表 like 'func fillCollectionView(with array: [String]) self.collectionArr.removeAll() self.collectionArr = array self.collectionView.reloadData() '【参考方案2】:我不知道fillCollectionView
做了什么,但看起来您没有考虑到表格视图单元格被重用了。因此,每次您拨打fillCollectionView
时,您都必须重置单元格的内容或内容或集合视图。
【讨论】:
如何重置它可以帮助更多@cldrr 尝试在let tags = Tblarr...
之前调用cell.tagsView.tags = []
单元格正在被重用,意味着对象本身可以包含以前使用的数据。以上是关于UITableView 内的 CollectionView 单元格重复的主要内容,如果未能解决你的问题,请参考以下文章
如何增加 UItableviewcell 内的 UItableview 高度?
如何使表格滚动工作:UIControl 内的 UITableView 内的 UIControl
UIViewController 内的 UITableView? [关闭]
ScrollTo indexPath 在 Collection View Cell 内的 Collection View (Nested CollectionView)
如何从应用程序委托访问 uitabbarcontroller 内的 uinavigationcontroller 内的 uitableview?