Это мой третий день, и после прочтения почти десятков речей я не мог понять, как реализовать разбиение на страницы в UITableview, используя метод willDisplay
.Я пытаюсь имитировать функцию iMessages pull to paginate.
Мой код, приведенный ниже, переходит в бесконечный цикл при попытке обновления в первый раз.
Может кто-нибудь взглянуть на код и предложить способисправить бесконечную загрузку?
Tx заранее.
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == 0 && !self.isLoading {
self.isLoading = true
fetchClientsMessages(page: self.currentPage, completed: {
if self.currentPage == 0 {
self.messageArray.removeAll()
}
self.messageArray.append(contentsOf: self.clientChatMessages!.messages!)
// Sort message by ID so that latest message appear at the bottom.
self.messageArray = self.messageArray.sorted(by: {$0.id! < $1.id!})
self.messagesTable.reloadData()
// Scroll to the top
self.messagesTable.scrollToRow(at: indexPath, at: UITableViewScrollPosition.top, animated: true)
self.lastPage = self.currentPage
self.currentPage = self.currentPage + 1
self.isLoading = false
})
}
}