Objective c 当UITableView向下滚动并反弹时调用了哪个方法?

Objective c 当UITableView向下滚动并反弹时调用了哪个方法?,objective-c,uitableview,Objective C,Uitableview,我从XML解析一些数据。我希望我的表显示前10行,然后当用户滚动到底部并跳出表时,它会更新(从xml加载新数据),然后显示新行。例如,首先用户获得10行,然后其他10行,然后剩余10行 我想知道当tableview跳转到底部时调用哪个方法,以及如何实现它的一些建议,谢谢。UITableView是UIScrollView的子类,UITableViewDelegate符合UIScrollViewDelegate。因此,您附加到表视图的代理将获得诸如scrollViewDidScroll:之类的事件,

我从XML解析一些数据。我希望我的表显示前10行,然后当用户滚动到底部并跳出表时,它会更新(从xml加载新数据),然后显示新行。例如,首先用户获得10行,然后其他10行,然后剩余10行


我想知道当tableview跳转到底部时调用哪个方法,以及如何实现它的一些建议,谢谢。

UITableView
UIScrollView
的子类,
UITableViewDelegate
符合
UIScrollViewDelegate
。因此,您附加到表视图的代理将获得诸如
scrollViewDidScroll:
之类的事件,并且您可以在表视图上调用诸如
contentOffset
之类的方法来查找滚动位置

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
    CGPoint offset = aScrollView.contentOffset;
    CGRect bounds = aScrollView.bounds;
    CGSize size = aScrollView.contentSize;
    UIEdgeInsets inset = aScrollView.contentInset;
    float y = offset.y + bounds.size.height - inset.bottom;
    float h = size.height;
    // NSLog(@"offset: %f", offset.y);   
    // NSLog(@"content.height: %f", size.height);   
    // NSLog(@"bounds.height: %f", bounds.size.height);   
    // NSLog(@"inset.top: %f", inset.top);   
    // NSLog(@"inset.bottom: %f", inset.bottom);   
    // NSLog(@"pos: %f of %f", y, h);

    float reload_distance = 10;
    if(y > h + reload_distance) {
        NSLog(@"load more rows");
    }
}
通过neoneye

您可以尝试使用。只需实现一个
loadMoreTableFooterDidTriggerRefresh:
方法,在那里加载更多行,然后只需调用
loadMoreScrollViewDataSourceDidFinishedLoading:
。非常简单
一些人在下面的答案中给出了更准确的答案,“哪种方法被称为”,但是-这就像发明了一辆自行车,我的观点是使用单独的控制是正确的

最好使用
-(void)ScrollViewDiEndDecelling:(UIScrollView*)scrollView
而不是
-(void)scrollViewDidScroll:(UIScrollView*)aScrollView
。它防止多次调用新行加载模块。此外,我在If行中做了更改,因此它可以使用ScrollViewDiEndDecelling:

如果(y>=h){


这项工作非常完美,谢谢!现在我想知道如何动态更改行数,我是否应该使用section方法中的numberOfRows?您必须更新数据源的数据并更新
numberOfRows
,是的。谢谢您。我将下载示例项目。