移除前一个单元格时,UiCollectionView 跳转到下一个单元格
Posted
技术标签:
【中文标题】移除前一个单元格时,UiCollectionView 跳转到下一个单元格【英文标题】:UiCollectionView jump on next cell when previous cell removed 【发布时间】:2020-03-04 17:16:42 【问题描述】:我有全屏单元格的自定义布局。从左侧移除单元格时(当时不可见),UICollectionView 跳转到下一个单元格。 就像当前单元格位于索引 4 处,当左侧的单元格被删除时,下一个单元格现在的索引为 4 并立即滚动到下一个单元格。 分3步描述(A是需要全屏的单元格,x将被删除,o其他单元格,大 strong> 字母全屏):
-
呜呜呜
oooxAoo
呜呜呜
但必须保持这个oooAoo
【问题讨论】:
【参考方案1】:这是我的解决方案,如果它可以帮助任何人,没有找到如何在本地实现所需的偏移量,所以只需在 reloadData() 之后将 contentOffset 滚动到所需的位置:
var currentCell: MyCollectionViewCell?
return (visibleCells.sorted $0.frame.width > $1.frame.width .first) as? MyCollectionViewCell
//-----------------------------------------
//some model manipulating code, removing desired items here...
let currentList = currentCell?.parentList
reloadData()
if let list = currentList, let index = self.lists.firstIndex(of: list)
self.scrollToItem(at: IndexPath(row: index, section: 0), at: .centeredHorizontally, animated: false)
currentCell 是计算属性,返回可选的中间单元格。
由于自定义流程布局逻辑,检测哪个单元格最大。
parentList 是模型项,我可以通过它来比较单元格以创造生命
更轻松。我检查了哪个列表之前附加到单元格
重新加载数据()。
【讨论】:
以上是关于移除前一个单元格时,UiCollectionView 跳转到下一个单元格的主要内容,如果未能解决你的问题,请参考以下文章