Ios 删除项目后停止UICollectionView更新布局

Ios 删除项目后停止UICollectionView更新布局,ios,swift,layout,uicollectionview,cell,Ios,Swift,Layout,Uicollectionview,Cell,我有一个水平布局的collectionView,其中选定的单元格应该位于屏幕的中心 我的问题是, 如果位于居中单元格左侧的单元格被删除,collectionView会根据需要更新布局并设置剩余单元格的动画,以便我当前选择的单元格(应保持居中)向左移动一个索引。 如何防止这种情况发生?您可以保存单元格的位置: var offsets = [IndexPath:CGFloat]() public func getScrollPosition() -> CGFloat { re

我有一个水平布局的collectionView,其中选定的单元格应该位于屏幕的中心

我的问题是,
如果位于居中单元格左侧的单元格被删除,collectionView会根据需要更新布局并设置剩余单元格的动画,以便我当前选择的单元格(应保持居中)向左移动一个索引。

如何防止这种情况发生?

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

var offsets = [IndexPath:CGFloat]()

public func getScrollPosition() -> CGFloat {
        return collectionView.contentOffset.x
    }
检查是否删除了未居中的单元格,并在删除单元格后设置

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

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

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)

有关详细信息,您可以查看此链接

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

func scrollToItem(at indexPath: IndexPath, 
               at scrollPosition: UICollectionView.ScrollPosition, 
         animated: Bool)
有关更多信息,您可以查看此链接