动态添加行到UITableView

时间:2015-01-24 18:03:53

标签: ios objective-c uitableview

我正在开发一个应用程序,它从Web服务获取一些消息,并按页面返回它们。我最初显示第一页,但如果用户想要向下滚动并查看过去的消息,我应该发出下一页的请求并获取消息。我的问题是,扩展表视图并将消息添加到数据源并将其加载到表中以便用户可以看到它们的最佳方法是什么?

感谢。

3 个答案:

答案 0 :(得分:1)

您可以检测表格视图何时接近底部。请求更多数据,然后将其加载到tableview的数据源中。 (数组或您正在使用的任何内容)然后您只需重新加载tableview。行计数可以是您正在使用的数据源。

我经常在我的应用中这样做。

答案 1 :(得分:1)

创建'加载更多'部分,其中包含一行。在其中放置一个活动指示器。在本节的'cellForItem'中,一旦收到数据,就发出请求并重新加载数据。

答案 2 :(得分:1)

实现UIScrollView委托方法scrollViewDidScroll,并检查表是否已经滚动到底部,然后更新数组,以帮助数据源方法在表视图中流行,并调用reloadData

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    DLog(@"Did scroll: contentOffsetY: %f, contentHeight:%f", scrollView.contentOffset.y, scrollView.contentSize.height);

    float scrollViewHeight = scrollView.frame.size.height;
    float scrollContentSizeHeight = scrollView.contentSize.height;
    float scrollOffset = scrollView.contentOffset.y;

    if (scrollOffset + scrollViewHeight >= scrollContentSizeHeight)
    {
        // update your datasource/array that provides content to table view
        [yourTableView reloadData];
    }
}