【发布时间】:2017-10-26 18:16:37
【问题描述】:
我已经检查过,在 stackoverflow 和我搜索的许多网站上尝试了许多解决方案。
我的问题:我在表格视图单元格中有一个集合视图。我的数据必须在表视图 (viewdidload) 中加载 1 次。
当我将数据传递到表格单元格内的集合视图时,它没有出现,因为我需要再次重新加载集合视图。
所以我这样做:数据 -> 在表格视图的 cellforrow 内 -> 传递到集合视图 -> cell.collectionView.reloadData()
这会导致滚动性能问题: collectionView.reloadData() 在我滚动时一遍又一遍地调用(这是因为表格视图的可重复单元格架构。
这是我在 tableView 的 cellforrow 中的代码:
let cell = tableView.dequeueReusableCell(withIdentifier: SubCategoryCellID) as! SubCategoryCell
if isFetched {
cell.shimmeringView.isShimmering = false
cell.shimmeringImageView.isHidden = true
cell.shimmeringView.isHidden = true
cell.listLocation = nestedSubLocation[indexPath.item]
cell.collectionView.reloadData()
}else {
return cell
}
我尝试过的解决方案: + 创建静态单元格并让单元格显示在 cellForRow 中(它完全修复了滚动性能,但我认为它不利于内存管理,如果父级是集合视图,它就不起作用)。 + 滚动停止时重新加载数据:第一次加载仍然需要重新加载数据,如果我不重新加载,则数据错误。
要解决这个问题,有人有聪明的方法来修复滚动性能吗?
【问题讨论】:
标签: ios swift collectionview