objective-c - 重新加载 UITableView 数据而不是可见单元格

标签 objective-c ios uitableview nsfetchedresultscontroller uirefreshcontrol

我正在开发一个应用程序,我想从远程 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。

最佳答案

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

关于objective-c - 重新加载 UITableView 数据而不是可见单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12884946/

相关文章:

ios - 如何使用 Xcode 在 Swift 中按 UI 元素类型进行应用程序范围/更快的更新......?

ios - 将 UIImageView 从正常更改为突出显示不起作用

ios - Objective-C: TableView 数据源的实例变量未初始化

ios - 如何在自定义方法中访问 UITableViewCell 中的对象?

iphone - 使用分段控件在 2 个 View 之间切换

ios - UITableView beginUpdates/endUpdates 使打字变慢

ios - ios编程中如何使用Keychain

android - 如何在使用 cordova 构建的现有混合应用程序上实现拉动刷新

objective-c - pushViewController 占用过多显示 View

ios - MBProgressHUD showAnimated : whileExecutingBlock: not working