Как использовать нумерацию страниц в табличном представлении - PullRequest
1 голос
/ 10 февраля 2020

В основном у меня есть вид таблицы и я получаю 5 предметов каждый раз, когда я вызываю API. Итак, как использовать / перезагрузить больше данных в виде белой таблицы прокрутки. array.count-1 не для меня в ячейке для indexpath строки, потому что когда размер устройства больше, все данные отображаются одновременно, а API не вызывает

Ответы [ 3 ]

0 голосов
/ 10 февраля 2020

Вы должны реализовать протокол UITableViewDataSourcePrefetching . Этот протокол поможет вам легко заполнить таблицу новыми данными

0 голосов
/ 19 февраля 2020

Объявление

текущая страница = 1

Затем добавьте этот метод в viewController

private func isLastCell(indexPath: IndexPath) -> Bool {
    print(indexPath)
    if array.count > 0 {
        return ((indexPath.section == sectionCount-1) && (indexPath.row == (array.count-1)))
    } else {
        return false
    }

}

После этого в метод tableViewWillDisplayCell добавьте эту функцию

if array.count > 0, self.isLastCell(indexPath: indexPath) {
            self.currentPage += 1
            // call api here
  } 

у меня работает

0 голосов
/ 10 февраля 2020

Вы должны отправлять номер страницы в запросе API.

Первое: объявить переменную currentPage с начальным значением 0 и логическим значением, чтобы проверить, загружается ли какой-либо список с начальным значением false, это препятствует тому, чтобы представление прокрутки получило больше списков / элементов за один прокрутку до основания tableView.

var currentPage = 0
var isLoadingList = false

Second: Это - функция, которая выбирает данные:

func getFromServer(_ pageNumber: Int){
     self.isloadingList = false
     self.table.reloadData()
} 

Третье: Реализация функции, которая увеличивает номер страницы и вызывает функцию API на текущей странице.

func loadMoreItems(){
     currentPage += 1
     getFromServer(currentPage)
}

Четвертое: Когда прокручивается scrollView, вы должны получить другие элементы / списки из API.

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if (((scrollView.contentOffset.y + scrollView.frame.size.height) > scrollView.contentSize.height ) && !isLoadingList){
            self.isLoadingList = true
            self.loadMoreItems()
        }
    }
...