Что касается разбивки на страницы в Firestore, я следил за руководством на их веб-сайте и на Youtube, но я не понимаю одного:
С практической точки зрения, если у нас есть collectionView
, отображающий ячейки из первого запроса из 10 документов.
Мы прокручиваем вниз collectionView
, когда все данные первого запроса были видны, где мы вызываем следующий запрос из контроллера?
Я искал в Интернете, но мало что нашел, я думал, может быть, с некоторыми методами делегирования UIScrollViewDelegate
из CollectionView
(?), но, похоже, он не предлагает правильных методов для этого.
Также для лучшего взаимодействия с пользователем я подумал, что лучше вызывать следующий запрос, когда пользователь приближается к нижней части коллекции, а не когда он уже достиг ее.
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if newInstrumentList.count-1 == indexPath.row && isMoreDataAvailable{
self.presenter?.showMorePage()
}
}
Это то, что используется для разбивки на страницы, обычно во время вызова API я получаю общее количество элементов и в зависимости от этого устанавливаю логическое свойство. Всякий раз, когда индекс ячейки представления коллекции совпадает с indexPath.row, запрашиваются следующие данные.