阻止 UICollectionView 在删除项后更新布局



>我有一个水平布局的集合视图,其中选定的单元格应位于屏幕中央。

我的问题是,
如果删除了居中单元格左侧的单元格,则 collectionView 会根据需要更新布局并将其余单元格动画化到位,以便我当前选择的单元格(应保持居中(向左移动一个索引。
我该如何防止这种情况?

您可以保存单元格的位置:

var offsets = [IndexPath:CGFloat]()
public func getScrollPosition() -> CGFloat {
return collectionView.contentOffset.x
}

检查是否未删除居中单元格并在删除单元格后设置。

collectionView.setScrollPosition(x: offsets[indexPath] ?? 0)

每次删除项目时都需要使用以下功能,以便将所选项目保持在中心。您可以将 scrollPosition 设置为.center

func scrollToItem(at indexPath: IndexPath, 
at scrollPosition: UICollectionView.ScrollPosition, 
animated: Bool)

有关更多信息,您可以查看此链接 苹果文档

最新更新