簡體   English   中英

UITableView向下滾動並反彈時調用哪種方法?

[英]Which method called when UITableView scroll down and bounce?

我從XML解析一些數據。 我希望我的表顯示前10行,然后當用戶滾動到底部並且表跳動時,它會進行更新(從xml加載新數據),然后顯示新行。 例如,首先用戶獲得10行,然后其他10條,然后休息10條。

我想知道當tableview跳到底部時調用哪種方法,以及一些建議如何實現它,謝謝。

UITableViewUIScrollView的子類,並且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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM