移除前一个单元格时,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 跳转到下一个单元格的主要内容,如果未能解决你的问题,请参考以下文章

iOS集合视图单元格高亮和选中的区别

如何防止 UITableViewCellSelectionStyleNone 删除单元格分隔符

选择单元格时更改图像

显示最后一个单元格时添加表格单元格。在ios中

当我删除一个包含核心数据的单元格时,同一个单元格显示两次

编辑另一个单元格时,集合视图会自动跳转到第一个单元格