1

我正在开发一个应用程序,我想从远程 Web 服务中提取数据并填充 UITableView。当我获得新数据时,我希望保留当前可见的单元格并在其上方添加新数据,就像大多数 Twitter 客户端一样。我的加载方法目前如下所示:

- (void)loadPostsInBackground
{
    NSURL *url = [NSURL URLWithString:@"[URL]"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    AFJSONRequestOperation *operation;
    operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id jsonObject) {

        [self createPostsFromDict:jsonObject];
        [self.refreshControl endRefreshing];
        [self.tableView reloadData];

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id jsonObject) {

        NSLog(@"Received an HTTP %d", response.statusCode);
        NSLog(@"The error was: %@", error);

    }];

    [operation start];

}

这可行,但它会使用新数据更新当前可见的单元格。所以我想要的是,获取新数据,将其添加到当前可见的单元格上方(或留在当前可见的单元格)。做这个的最好方式是什么?

注意:我需要 iOS6。

4

1 回答 1

2

而不是在表视图上调用reloadData 。您应该调用insertRowsAtIndexPaths:withRowAnimation:。在更新表视图的数据源使用的数据后执行此操作。

于 2012-10-14T18:01:30.120 回答