UITableView一次加载API的所有页面

时间:2018-10-17 12:54:14

标签: ios iphone swift

我有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()
    })
}

0 个答案:

没有答案