テーブルビューを編集可能なモードにするには、
- (void)setEditing:(BOOL)editing animated:(BOOL)animated; |
で編集モードにすればいいのだけれど、例えばセクションが二つあって、一方は編集可、もう一方は編集不可な状態を作りたい場合には、UITableViewDataSourceの、
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath; |
で編集可能にするrowをコントロールすることができる。もちろんrowだけじゃなくて、NSIndexPathでsectionを取得してセクション毎に編集可/不可を切り分けちゃうのも可。例えば最初のセクションは編集不可、二つ目のセクションは編集可にするにはこんなコードでOK。テーブルを編集状態にしても最初のセクションは影響を受けない。
1 2 3 4 5 6 7 8 | - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { if ([indexPath section] == 0) { return NO; } return YES; } |
それにしてもCocoaのメソッド名って長いな。