Это мой третий день, и после прочтения почти десятков статей я не мог понять, как реализовать разбиение на страницы в UITableview с использованием метода willDisplay
. Я пытаюсь имитировать функцию iMessages pull to pagination.
Мой код ниже переходит в бесконечный цикл при первом обновлении.
Может ли кто-нибудь заглянуть в код и предложить способ исправить бесконечную загрузку?
Тх заранее.
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
})
}
}