Swift 4 tableview分页用于api数据

时间:2019-01-20 01:39:38

标签: swift uitableview pagination

我从服务器接收数据,每个请求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)
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您总是用新获取的数据替换当前数据,需要在其中附加。

self.myAds = data!

相反,您需要在现有数据中附加新数据。

self.myAds.append(contentsOf: data!)