0

我正在尝试做一个具有类似高音应用程序功能的应用程序。

我有一个包含 10 个单元格的表格视图,我希望当我向下滚动并到达第 5 个单元格时,表格视图会在当前视图中添加另外 10 个单元格,依此类推。

这些单元格的内容是通过运行一个方法来设置的,该方法返回一个包含 10 个元素的数组,我用它来填充新的单元格。

我不知道如何向当前表格视图添加更多单元格,以及如何检查何时到达第 5 个单元格或所有当前单元格的末尾,以便自动添加一组新的 10 个单元格。

我在想我将使用 [tableView reloadData] 重新填充表格视图,并且在我知道我已经到达所有当前单元格的末尾之后我会调用它,但我不知道如何检查我什么时候已经达到了那个目的。

对此有什么想法吗?是否可以检查我何时到达表格视图的所有单元格的末尾?

4

4 回答 4

4

AnUITableView只是 an 的子类UIScrollView,因此您可以实现这些UIScrollViewDelegate功能并在其中做任何您想做的事情。

您可以实施

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

委托函数并检查您是否到达表的末尾

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

应该可以解决问题,或者如果您想早一点开始添加新行,则只需减去一些点。

于 2013-02-21T13:09:50.053 回答
1

我知道这不是你要找的东西,但它非常相似......

这是您的起点:https ://github.com/enormego/EGOTableViewPullRefresh

这里有一些更有趣的链接给你:

  1. iPhone 项目需要“上拉刷新”功能
  2. UITableView 行异步加载
于 2013-02-21T12:54:44.273 回答
1

有很多开源项目在做这件事。要找到它们,您可以访问例如http://www.cocoacontrols.com/并搜索“刷新”或“拉动刷新”或“tableview”。

其中许多项目都提供了有关如何将它们与 tableview 一起使用的示例

于 2013-02-21T12:56:08.690 回答
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
        }


}
于 2013-02-21T13:27:14.047 回答