我目前有这段代码来检测用户何时到达数据列表中的最后一个元素
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)
if (indexPath.row == list.count) {
self.getMoreData()
}
return cell
}
只要我不离开视图,它就能很好地工作。如果我离开视图并使用后退操作返回到该视图,则会执行此方法,直到达到list.count - X
,其中X
是屏幕中可见的数量。
一个例子:如果我有18个项目,这个方法在导航回列表时会在iPhone 6+上运行到11个。
这会导致我的逻辑检测到最后一项失败。我不知道发生了什么:(
答案 0 :(得分:0)
替换"索引"使用" indexPath.row"。
答案 1 :(得分:0)
func scrollViewDidScroll(scrollView: UIScrollView!) {
if(scrollView.contentSize.height - scrollView.contentOffset.y =< scrollView.frame.size.height) {
// bottom
}
}