>我有一个水平布局的集合视图,其中选定的单元格应位于屏幕中央。
我的问题是,
如果删除了居中单元格左侧的单元格,则 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)
有关更多信息,您可以查看此链接 苹果文档