我有一个表格视图,用户可以按照他希望的顺序移动和重新排列单元格。但是当他多次移动/重新排列细胞时,持有物品的阵列会因为物品的顺序而完全混乱,但在视觉上一切都很好。我究竟做错了什么?提前谢谢你......
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
id object1 = [_items5 objectAtIndex:sourceIndexPath.row];
id object2 = [_items5 objectAtIndex:destinationIndexPath.row];
[_items5 replaceObjectAtIndex:sourceIndexPath.row withObject:object2];
[_items5 replaceObjectAtIndex:destinationIndexPath.row withObject:object1];
其中_items5是NSMutableArray并在viewDidLoad中初始化
答案 0 :(得分:1)
您正在交换两个项目,而不是移动一个已移动的项目。你想要:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath {
id object = [_items5 objectAtIndex:sourceIndexPath.row];
[_items5 removeObjectAtIndex:sourceIndexPath.row];
[_items5 insertObject:object atIndex:destinationIndexPath.row];
}
注意:如果使用MRC,您需要保留object
,以便在将其放回阵列之前不会取消分配。