Collection View inside Table View Cell 慢速滚动性能
Collection View inside Table View Cell Slow Scroll Performance
我在 Whosebug 和我搜索的许多网站上检查、尝试了许多解决方案。
我的问题:我在 table 视图单元格中有一个集合视图。我的数据必须在 table 视图 (viewdidload) 中加载 1 次。
当我将数据传递到 table 个单元格内的集合视图时,它没有出现,因为我需要再次重新加载集合视图。
所以我这样做:数据 -> table 视图的 cellforrow 内部 -> 传递到集合视图 -> cell.collectionView.reloadData()
这会导致有关滚动性能的问题: collectionView.reloadData() 在我滚动时一遍又一遍地调用(这是因为 [=34 的可重用单元格架构=] 查看。
这里是我在 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 中(它完全修复了滚动性能,但我认为它不利于内存管理,如果父级是集合视图则它不起作用)。
+ 滚动停止时重新加载数据:第一次加载时仍然需要重新加载数据,如果我不再重新加载,则数据错误。
要解决这个问题,有人有解决滚动性能的巧妙方法吗?
将这段代码放在cell.collectionView.reloadData()
之后
cell.collectionView.scrollRectToVisible(CGRect.zero, animated: false)
我在 Whosebug 和我搜索的许多网站上检查、尝试了许多解决方案。
我的问题:我在 table 视图单元格中有一个集合视图。我的数据必须在 table 视图 (viewdidload) 中加载 1 次。
当我将数据传递到 table 个单元格内的集合视图时,它没有出现,因为我需要再次重新加载集合视图。
所以我这样做:数据 -> table 视图的 cellforrow 内部 -> 传递到集合视图 -> cell.collectionView.reloadData()
这会导致有关滚动性能的问题: collectionView.reloadData() 在我滚动时一遍又一遍地调用(这是因为 [=34 的可重用单元格架构=] 查看。
这里是我在 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 中(它完全修复了滚动性能,但我认为它不利于内存管理,如果父级是集合视图则它不起作用)。 + 滚动停止时重新加载数据:第一次加载时仍然需要重新加载数据,如果我不再重新加载,则数据错误。
要解决这个问题,有人有解决滚动性能的巧妙方法吗?
将这段代码放在cell.collectionView.reloadData()
cell.collectionView.scrollRectToVisible(CGRect.zero, animated: false)