Сохранять позицию UICollectionView после перезагрузки, используя динамическую высоту ячейки - PullRequest
0 голосов
/ 28 января 2019

У меня вертикальный 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 является константой, проблема не возникает.

...