2013-02-21 83 views
0

我正在嘗試執行具有類似於高音單元格應用程序功能的應用程序。UITableview基於滾動添加表格單元格

我有10個單元格的表格視圖,我希望當我向下滾動併到達第5個單元格時,表格視圖會向當前視圖添加另外10個單元格等等。

這些單元格的內容是通過運行一個方法來設置的,該方法返回一個由10個元素組成的數組,我用它來填充新的單元格。

我不知道如何在當前表格視圖中添加更多單元格以及如何檢查何時到達第5個單元格或所有當前單元格的末端,以便自動添加一組新的10個單元格。

我想我會用[tableView reloadData]重新填充tableview,我知道我已經到達所有當前單元格的末尾,但我不知道如何檢查當我達到目的時。

對此有何看法?是否有可能檢查何時到達表格視圖的所有單元格的末端?

+2

可能重複的http:// iphonedevsdk。com/forum/iphone-sdk-development/18876-paging-pagination-load-more-uitableview.html – Girish 2013-02-21 12:53:30

+0

我對基於按鈕的功能不感興趣,只需使用滾動。我已經開始顯示indexpath.row編號,並且我看到基於滾動,它正好返回我想要的,這是表格單元格的編號。但是,如何在當前表格中添加更多表格單元格而不覆蓋當前單元格? – Carmichael 2013-02-21 12:58:13

回答

4

一個UITableView使用提供的例子只是一個UIScrollView的子類,這樣你就可以實現UIScrollViewDelegate功能,做任何你想要他們。

您可以實現

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

委託功能,並檢查是否達到了表

if (scrollView.contentOffset.y + scrollView.frame.size.height == scrollView.contentView.frame.size.height) { ... }

年底應該做的伎倆,或者如果你要開始添加新的行稍早,然後減去一些點。

+0

是的,它有訣竅!謝謝! – Carmichael 2013-02-21 13:45:50

1

有很多開源項目在做。要找到它們,例如,您可以轉到http://www.cocoacontrols.com/並搜索「刷新」或「拉取刷新」或「tableview」。

許多項目是在如何把它們用的tableview

1

使用滾動視圖代表獲得滾動的方向(如果您使用表格視圖將被調用)

#pragma mark:scrollView delegate 
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    offset=scrollView.contentOffset.y; 
    offsetx=scrollView.contentOffset.x; 
    DLog(@"%f",offset); 
} 
- (void)scrollViewDidScroll:(UIScrollView *)sender 
{ 

    DLog(@"%f************%f",offset,sender.contentOffset.y); 
    if(offset>sender.contentOffset.y) 
    { 
     directionUp=NO; 
    } 
    else { 
     directionUp=YES; 
    } 

} 

然後用這個多部未華視委託方法

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 



     if(directionUp&&(indexPath.row>dataSource.count-3)) 
     { 
      [self performSelector:@selector(appendTableView) withObject:nil afterDelay:0.1f];// appendTableView fetches next ten data element 
     } 


}