Obj-C,上传保存其行的数组后刷新表的一部分?

时间:2012-03-12 13:52:25

标签: iphone objective-c ios cocoa-touch

在某些情况下,我需要在表格视图中删除一个或两个记录。

而不是调用reloadData无论如何我可以从我的数据数组中刷出表格中的6行吗?

我真的不想调用reloadData,因为这会松开表中的用户位置。

我没有使用核心数据,也没有时间重写。

3 个答案:

答案 0 :(得分:3)

UITableView的reloadRowsAtIndexPaths:withRowAnimation:可以满足您的需求。

如果你想删除一些行,你可以这样做:

[tableView beginUpdates];

NSInteger rowToDelete = [self.objects indexOfObject:foo];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:rowToDelete inSection:0];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.objects removeObject:foo];

[tableView endUpdates];

答案 1 :(得分:3)

当然有。您可以使用reloadRowsAtIndexPaths:withRowAnimation:reloadSections:withRowAnimation:,但如果要从数据模型中删除,则需要执行以下操作:

NSArray *rowsToDelete = [NSArray arrayWithObjects:[NSIndexPath indexPathForRow:row inSection:section], <etc> , nil];
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:rowsToDelete withRowAnimation:<pickYourPosion>];
[tableView endUpdates];

必须同步对表格视图和数据模型进行更改。阅读它here

答案 2 :(得分:1)

这是你在找什么? reloadRowsAtIndexPaths:withRowAnimation: