我从服务器接收数据,每个请求10个项目,当用户滚动到底部并将新数据添加到tableview的旧数据中时,需要实现分页来执行请求,并且每次发送请求时我都会向数字发送1分页响应的一部分
"total_items": 10,
"current_page": 1
这就是我尝试过的代码:
var pageNo:Int=1
var limit:Int=10
var totalPages:Int=10
var myAds = [MyAds]()
func current(pageNo:Int) {
API.myCurAds(pageNo: pageNo, completion: { (error: Error?, data:[MyAds]?) in
if data != nil {
self.myAds = data!
self.tableView.reloadWithAnimation()
print("myAds", data!)
}
})
}
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if indexPath.row == myAds.count - 1 { //
if pageNo < totalPages {
pageNo += 1
self.current(pageNo: pageNo)
}
}
}
答案 0 :(得分:0)
您总是用新获取的数据替换当前数据,需要在其中附加。
self.myAds = data!
相反,您需要在现有数据中附加新数据。
self.myAds.append(contentsOf: data!)