重新加载后使用动态单元格的高度保持UICollectionView的位置

时间:2019-01-27 21:29:30

标签: ios swift uicollectionview scrollview

我有一个带有流布局的垂直UICollectionView,我正在尝试实现无限滚动行为。当视图接近尾声时,api会在服务器端再请求10个寄存器,然后更新收集数据。但是,当我这样做时,我的表不会保持在重新加载之前的同一单元格上。重新加载后如何保持位置?

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    if indexPath.row == viewModel.numberOfItemsInSection - 3 {
        self.viewModel.fetchNextRepositoriesPage() { shouldUpdateData in
            self.repositoriesListView.repositoriesCollectionView.reloadData()
            self.repositoriesListView.layoutIfNeeded()
        }
    }
}

private func reloadCollectionData() {
    let offset = collectionView.contentOffset
    collectionView.reloadData()
    view.layoutIfNeeded()
    collectionView.contentOffset = offset
}

编辑:

我注意到仅当我在collectionView上使用estimadedItemSize时,才会出现此问题。当itemSize为常数时,不会发生此问题。

0 个答案:

没有答案