我有一个带有流布局的垂直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为常数时,不会发生此问题。