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