一尘不染

UITableView分页-底部刷新以在Swift中加载新数据

swift

我正在尝试通过分页实现从后端加载数据。我已经看到了,但是它一直加载所有数据。这是正确的方法还是我做错了什么?

提前致谢。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell

    print(indexPath.row)

    if (indexPath.row + 1 < self.TotalRowsWithPages) {
        cell.textLabel?.text = "\(self.myarray!.[indexPath.row].body)"
    } else {

        cell.textLabel?.text = "Loading more data...";

        // User has scrolled to the bottom of the list of available data so simulate loading some more if we aren't already
        if (!self.isLoading) {
            self.isLoading = true;
            self.TotalRowsWithPages = self.TotalRowsWithPages + self.PageSize
            self.getmoredata()
        }
    }

    return cell
}

阅读 268

收藏
2020-07-07

共1个答案

一尘不染

不会,您不能采用这种方法,因为它cellForRowAtIndexPath被调用了很多次,而且还需要很多时间来检查您的状况!

在这里,我找到了更好的UITableView分页选项。

func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {

    //Bottom Refresh

    if scrollView == tableView{

        if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
        {
            if !isNewDataLoading{

                if helperInstance.isConnectedToNetwork(){

                    isNewDataLoading = true
                    getNewData()
                }
            }
        }
    }
}

isNewDataLoadingBool要检查是否UITableView正在加载新数据!

希望这可以帮助!

2020-07-07