0

UITableViewユーザーがセルを並べ替えることを許可している範囲があります。一番上の行を除いて、すべてのセルを並べ替えることができます。一番上の行は常に一番上の行のままである必要があります。

canMoveRowAtIndexPath一番上の行が移動できないようにする方法を使用しました。ただし、ユーザーが他の行をドラッグして一番上の行の上にドロップするのを防ぐ方法がわからないため、一番上の行の要件に違反しています。

ユーザーが他の行を一番上の行の上にドラッグできないようにするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

1

要件を満たしていない場合に宛先インデックスパスを修正できるUITableViewDelegateメソッドがあります。私はこれがうまくいくと思います:

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
    if (proposedDestinationIndexPath.row == 0) {
        return sourceIndexPath;
    }
    else {
        return proposedDestinationPath;
    }
}
于 2012-06-29T11:15:32.743 に答える