0

ユーザーが希望する順序でセルを移動および再配置できるテーブル ビューがあります。しかし、彼がセルを複数回移動/再配置すると、項目の順序が関係するため、項目を保持する配列が完全に台無しになりますが、視覚的にはすべて問題ありません。私は何を間違っていますか?前もって感謝します...

- (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 で初期化されます

4

1 に答える 1

1

移動した 1 つのアイテムを移動する代わりに、2 つのアイテムを交換しています。あなたがしたい:

- (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いる場合は、配列に戻す前に割り当てが解除されないように保持する必要があります。

于 2013-04-14T18:22:05.403 に答える