TableView 由 3 个部分组成,每个部分附加到行值数组,这些数组通过每个单元格的附件视图中的按钮相互关联,因此当按下按钮时,底层数据源被更改并重新加载表,以匹配数字使用以下代码更新前后的行数:
int sentCount = [[self sendersList] count];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
NSIndexPath *indexPathToMove = [NSIndexPath indexPathForRow:(sentCount - 1) inSection:2];
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPathToMove] withRowAnimation:UITableViewRowAnimationRight];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[tableview endUpdates];
[tableview reloadData];
我得到的是这个新索引路径中原始行的副本,而不是在从数据源获取数据后应该由 cellForRowAtIndexPath 显示的单元格。
我已经记录并检查了插入行的部分被调用了适当的次数,但显示的值是原始单元格的副本。