'Live'UITableView - 从服务器获取小部分数据

时间:2013-09-19 08:44:59

标签: iphone ios objective-c rest web

如何在iOS下创建实时UITableView?

我想,我想创建连接到用JAVA编写的服务器的应用程序。 POST请求下的服务器返回带有数据(JSON格式)的映射表。问题是,数据可能非常大(大约100000个recods)。我已经在服务器端实现了部分返回数据(当POST有offset和size params时,服务器将数据从offset返回到(offset + size)和数据总数)。

问题是我不知道如何用iOS实现它。

我知道如何让UITableView使用从服务器下载的数据,但我不知道如何让UITableView使用部分数据:例如:输入到视图我只下载100行表格100000,当时用户向下滚动(例如到80行)我下载下一部分数据。我的意思是我不想在内存中存储整个100000行,但只能在表视图中显示200行。当用户滚动到表格的末尾时,在memmory中我应该有从99800到100000的行

1 个答案:

答案 0 :(得分:1)

当用户滚动tableview时,如果到达最后一个单元格,我们将检查是否到达了最后一个单元格,我们将下载dataset下一个单词:

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

    NSInteger sectionsAmount = [tableView numberOfSections];
    NSInteger rowsAmount = [tableView numberOfRowsInSection:[indexPath section]];

    if ([indexPath section] == sectionsAmount - 1 && [indexPath row] == rowsAmount - 1) {
        // This is the last cell in the table
        //Here you can download the next part of dataset and reload the tableView.
     }
} 

希望这会对您有所帮助。