在某些情况下,我需要在表格视图中删除一个或两个记录。
而不是调用reloadData
无论如何我可以从我的数据数组中刷出表格中的6行吗?
我真的不想调用reloadData,因为这会松开表中的用户位置。
我没有使用核心数据,也没有时间重写。
答案 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)