滚动到底部时,TableView加载更多单元格

时间:2017-10-30 16:45:18

标签: ios uitableview

我创建了一个tableView,当用户滚动到最后一个单元格时,将加载更多数据。在willDisplayCell中,我实现了这个代码,从堆栈溢出中的类似问题中引用。但是当我滚动到底部时,它不会加载一次数据,它会创建一个循环并多次调用loadMore函数。

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let lastData = self.data!.count - 1
    if indexPath.row == lastData {
        currentPage += 1
        self.loadData(currentPage)
    }
}

func loadData() {
    self.showLoadingView() 
    apiCALL(callback: { data
      self.jsonDATA.append(contentsOf: data)
      self.tableView.reloadData()
    })
}

1 个答案:

答案 0 :(得分:0)

添加布尔参数以避免无限循环。

var isLoading = false

func loadData() {
    isLoading = true
    self.showLoadingView()
    apiCALL(callback: { data
        self.isLoading = false
        self.jsonDATA.append(contentsOf: data)
        self.tableView.reloadData()
    })
}


func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    let lastData = self.data!.count - 1
    if !isLoading && indexPath.row == lastData {
        currentPage += 1
        self.loadData()
    }
}