Загрузка данных в кучу UICollectionView кучей - PullRequest
0 голосов
/ 23 октября 2018

Я создаю приложение чата, и у меня возникла проблема с представлением коллекции.В моем приложении я просто хочу сделать что-то наподобие WhatsApp, при запуске я загружаю первые 50 сообщений, а когда мы прокручиваем вниз, то хочу получать другие сообщения кучкой за кучей.Но когда я делаю это и вызываю метод reloadData представления коллекции, тогда он прокручивается до верхнего сообщения.И я не хочу, чтобы они прокручивали.Вы можете мне помочь.Пожалуйста ...

Я просто хочу сделать collectionView похожим на представление чата WhatsApp ... т.е. загружать больше сообщений, когда пользователь переходит к более старым сообщениям.

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы запрашиваете только подачу (вставку) ячейки в представление коллекции без перезагрузки.

Проверьте это appledoc при вставке элемента.

определитеновые indexPaths, а затем передать их в представление коллекции, используя следующую команду:

yourCollectionView.insertItems(at indexPaths: newIndexPaths)
0 голосов
/ 23 октября 2018

Определите, когда вы дойдете до конца и получите больше данных

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)
    {
    let lastSectionIndex = collectionView.numberOfSections - 1
    let lastRowIndex = collectionView.numberOfItems(inSection: lastSectionIndex) - 1
    if indexPath.section == lastSectionIndex && indexPath.row == lastRowIndex 
    {
        //fetch more items
        //add items to data array
        //Reload collectionview
    }
}
0 голосов
/ 23 октября 2018

Try pagination concept

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    if indexPath.row + 1 == dataArray.count && dataArray.count < completeData.count {
        fetchMoreData()
    }
    .....
}

func fetchMoreData() {

    //Fetch and add more data to your dataArray.
    //Reload collectionView
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...