У меня вертикальный 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
}
РЕДАКТИРОВАТЬ:
Я заметил, что эта проблема возникает, только когда я использую оценочныйItemSize на моем collectionView.Когда itemSize является константой, проблема не возникает.