我正在尝试通过分页实现从后端加载数据。我已经看到了,但是它一直加载所有数据。这是正确的方法还是我做错了什么?
提前致谢。
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 }
不会,您不能采用这种方法,因为它cellForRowAtIndexPath被调用了很多次,而且还需要很多时间来检查您的状况!
cellForRowAtIndexPath
在这里,我找到了更好的UITableView分页选项。
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() } } } } }
isNewDataLoading是Bool要检查是否UITableView正在加载新数据!
isNewDataLoading
Bool
希望这可以帮助!