小编xse*_*see的帖子

调用reloadRowsAtIndexPaths时,UITableView弹回一个部分的顶部

当用户点击我的一行中的按钮时,我正在更新该行的基础模型,然后为给定行调用reloadRowsAtIndexPaths(即单行重新加载).

- (IBAction)handleCompleteTouchEvent:(UIButton *)sender {
    NSIndexPath *indexPath = [self.tableView indexPathForView:sender];
    id item = [self dataForIndexPath:indexPath];

    if ([item respondsToSelector:@selector(completed)]) {
        // toogle completed value
        BOOL completed = ![[item valueForKey:@"completed"] boolValue];
        [item setValue:[NSNumber numberWithBool:completed] forKey:@"completed"];

        [self.tableView beginUpdates];
        [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
        [self.tableView endUpdates];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是在进行此调用后,表视图会弹回到该部分的顶部.如何防止这种情况发生并将滚动位置保持在原位?

objective-c uitableview ios ios7

37
推荐指数
2
解决办法
1万
查看次数

标签 统计

ios ×1

ios7 ×1

objective-c ×1

uitableview ×1