我有UIScrollView,里面有UITableView。我已经实现了分页的概念,通过该概念我可以在每个页面中从Web服务请求10条记录。我像这样在UITableView的willDisplay委托方法中增加页数:
func tableView(_ tableView:UITableView,willDisplay单元格:UITableViewCell,forRowAt indexPath:IndexPath){
if self.pageNumber == 0{
self.pageNumber = 1
}
if pageNumber >= self.totalPages{
return
}
else
{
if (self.listData?.count)! == 10*pageNumber{
if (self.listData?.count)! - 1 == indexPath.row{
pageNumber += 1
self.callService()
}
}
}
}
我面临的问题是所有记录都被加载一次,而我希望随着用户在上述方法中随着页数的增加向下滚动UITableView时加载所有记录。这是callService方法:
func callService(){
ProfileApiStore.shared.requestToGetProfile(loggedInUserId: UserStore.shared.userId, userId: UserStore.shared.userIdToViewProfile, limit: "10", page: String(self.pageNumber), completion: {(result) in
self.totalPages = result.totalPages!
if self.listData?.count == 0 || (self.pageNumber as AnyObject) as! Int == (1 as AnyObject) as! Int{
self.listData = result.userdata?.newPostData
} else {
self.listData = self.listData! + (result.userdata?.newPostData)!
}
self.tableView.reloadData()
})
}