8

並べ替えるセルをブロックしたい。

例えば:

4 行のテーブルビューがありますが、最初のセルの順序を変更したくありません。

それは可能ですか?

私は使用しようとしました:

if(indexPath.row == 0)
{
    [cell setEditing:NO animated:NO];
}

しかし、うまくいきません。

ありがとう。

4

3 に答える 3

11

答えが見つかりました!

UITableViewDelegate からメソッドtargetIndexPathForMoveFromRowAtIndexPathを使用できます。

-(NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath{
    if (proposedDestinationIndexPath.row == 0) {
        return sourceIndexPath;
    }
    return proposedDestinationIndexPath;

}

于 2013-02-27T18:26:09.197 に答える
1

UITableViewDataSource は-(BOOL)tableView:canMoveRowAtIndexPath:、indexPath.row == 0 に対して実装し、NO を返す必要があります。

- (BOOL)tableView:canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    return (indexPath.row != 0);
}

UITableViewDataSource ドキュメント

于 2013-02-27T17:21:18.217 に答える