#swift #api #uitableview
Вопрос:
Я пытаюсь сделать разбивку на страницы для своего просмотра таблицы
Я добавил условие для проверки последней ячейки в indexPath, но оно не работает в следующем коде
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == articles?.articles.count ?? 2 - 1 {
pageNumber = 1
catPass = PassUrl(categoryName: titleName ?? "", id: sourceId, searchText: labelText, pageInt: pageNumber)
APICall.shared.fetchData(category: catPass) { (response) in
DispatchQueue.main.async {
self.articles = response
self.myTableView.reloadData()
}
}
}
}
Когда я прокручиваю вниз до последней ячейки, она больше не загружается.
Как эту функцию можно исправить?
Комментарии:
1. Попробуйте это « если (indexPath.строка >= статьи? .статьи.количество ?? 2) — 1 {«
2. @РаджАкишан все тот же(
3. Каков текущий счет ?
4. @RajaKishan это 1 вот ссылка на полный код, я думаю, что там лучше понять, что мне делать jdoodle.com/iembed/v0/f5K
Ответ №1:
Попробуйте это, это поможет вам сделать это:
let lastItem = (articles?.articles.count ?? 2) -1
if lastItem == indexPath.row {
if pageNumber < 100{ //in case you have a limit
pageNumber = 1
catPass = PassUrl(categoryName: titleName ?? "", id: sourceId, searchText: labelText, pageInt: pageNumber)
APICall.shared.fetchData(category: catPass) { (response) in
DispatchQueue.main.async {
self.articles = response
self.myTableView.reloadData()
}
}
}
Комментарии:
1. он обновляет «ограничение» каждый раз, когда я прокручиваю свое представление таблицы. И вместо ApiCall() выше я изменил на : catPass = PassUrl(Имя категории: имя заголовка ?? «», идентификатор: идентификатор источника, текст поиска: текст метки, тип страницы: номер страницы) АПИКалл.поделился. fetchData(категория: catPass) { (ответ) в DispatchQueue.main.async { self.articles = сам ответ. MyTableView.reloadData() } }
2. измените лимит с помощью номера страницы
3. Я изменил номер страницы на номер страницы, можете ли вы взглянуть на это jdoodle.com/iembed/v0/f5M
4. попробуйте это « let lastItem = (количество статей ?? 2) -1 «
5. добавьте код на github, чтобы его можно было загрузить