Pagination in UITableView once it in the bottom

Viewed 42

I am trying to make pagination for my tableView

I added the condition for checking the last cell in indexPath, but it does not work in the following code

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()
            }
        }

    }
   
  
}

When I scroll down to the last cell, it does not load more.

How this func could be corrected?

1 Answers

Try this, It will help you getting it done:

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()
        }
    }
                }

            
Related