[英]Which method called when UITableView scroll down and bounce?
我從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)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
而不是- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
。 這樣可以防止多次調用新行加載模塊。 另外,我對If行進行了更改,因此它可以與scrollViewDidEndDecelerating一起使用:
if(y> = h){
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.