【问题标题】:Call api at specific scrollpoint while scrolling table view滚动表格视图时在特定滚动点调用 api
【发布时间】:2016-05-12 12:09:09
【问题描述】:

我有一个表格视图并在自定义单元格中显示产品。

记录太多了,所以我现在正在使用分页,但是当滚动点与 tableview 单元格滚动点匹配时,我想调用 api 进行分页,然后最后 3 行仍然滚动。

简而言之,我想在最后 3 行仍然在表格中滚动之前调用 api。

如果有其他方法可以做到这一点,那将不胜感激。

提前谢谢你。

【问题讨论】:

  • 如果您需要详细访问滚动信息(即“点”),请注意 UITableViewDelegate 继承自 UIScrollViewDelegate 并且也可以实现这些方法。

标签: swift uitableview ios9


【解决方案1】:

您可以使用UITableView委托方法willDisplayCell:ForRowIndexPath:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

    let needToFetchNewData = indexPath.row + 3 == datasource.count

    if needToFetchNewData {
        fetchData()
    }
}

我还想考虑一个变量isAlreadyDownloading,因为在您获取新数据时用户仍然可以滚动,并且它会多次生成相同的请求

【讨论】:

  • 是的,我已经尝试过了,但是它一次生成所有请求进行分页,它会调用 api。但我想在确切地有 3 个单元格剩余滚动和一个一个的 api 调用时调用。我想选择 == 而不是 >= 或 这样的条件
  • 我不明白你的意思。你能提供给我们你用来做这件事的代码吗?
  • 这是正确的答案,但我必须设置一些变量来停止一次调用所有 api。 @LucaD 谢谢你..!
猜你喜欢
  • 2013-06-15
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 2013-12-30
  • 1970-01-01
  • 2021-03-24
  • 2023-04-11
  • 2011-12-05
相关资源
最近更新 更多