我正在构建阅读app的文章。文章列表位于UITableViewController
,我在使用scrollViewDidScroll:
方法时遇到问题表格的第一个单元格显示在UINavigationBar
。但是,当评论此代码时,它显示正常意味着在UINavigationBar
之后的第一个单元格。
这是我的代码:
- (void)scrollViewDidScroll: (UIScrollView*)scroll {
// UITableView only moves in one direction, y axis
CGFloat currentOffset = scroll.contentOffset.y;
CGFloat maximumOffset = scroll.contentSize.height - scroll.frame.size.height;
// Change 10.0 to adjust the distance from bottom
if (maximumOffset - currentOffset <= -60.0) {
x++;
[self LoadMore];
[self.tableView addInfiniteScrollingWithActionHandler:^{
}];
[self.tableView reloadData];
}
}
答案 0 :(得分:0)
这个答案可能不是您问题的解决方案。这是指出代码中可能导致问题的主要流程。
您不应直接在[self LoadMore];[self.tableView reloadData];
方法中重新加载数据scrollViewDidScroll:
。这将导致在滚动时多次调用该方法。
我认为你已经错误地实现了无限加载。
此代码应放在某些初始化方法(例如,viewDidLoad)
中[tableView addInfiniteScrollingWithActionHandler:^{
[self LoadMore];
[self.tableView reloadData];
// call [tableView.infiniteScrollingView stopAnimating] when done
}];
如果您在滚动时计划加载更多项目,我认为您根本不需要使用scrollViewDidScroll:
。只需将上面的代码放在viewDidLoad:
中,一切都应该有效。您必须跟踪单独加载的项目数。希望这会有所帮助。 :)