2013-02-21 130 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 
     } 


}