UITableViewの行を削除したいのですが、スワイプではなく、iPhoneのメッセージ削除機能と同様の方法で削除ボタンを提供する必要があります。[編集]をクリックすると、セルの左側に小さな赤い円が表示されます。この円は、クリックすると回転し、削除ボタンが表示されます。これを実装する方法は?
下の画像のように:
UITableViewの行を削除したいのですが、スワイプではなく、iPhoneのメッセージ削除機能と同様の方法で削除ボタンを提供する必要があります。[編集]をクリックすると、セルの左側に小さな赤い円が表示されます。この円は、クリックすると回転し、削除ボタンが表示されます。これを実装する方法は?
下の画像のように:
これを実現する方法の詳細については、こちらのAppleのドキュメントを参照してください。特に:
setEditing:animated
:メッセージ(最初のパラメーターが )が送信されると、テーブルビューは編集モードになり、関連YES
する各行に応じて、表示されている各行の編集または並べ替えコントロールが表示され ます。挿入または削除コントロールをクリックすると、データソースは :メッセージを受信します。必要に応じて、 :または :を呼び出して、削除または挿入をコミットし ます。editingStyle
UITableViewCell
tableView:commitEditingStyle:forRowAtIndexPath
deleteRowsAtIndexPaths:withRowAnimation
insertRowsAtIndexPaths:withRowAnimation
self.navigationItem.leftBarButtonItem = self.editButtonItem;
これをviewDidLoad
メソッドに記述 します。その後、このメソッドを実装します- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
[yourArray removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
}
}