2

UITableViewCellの要素に削除-編集-コピー機能を実装するさまざまな方法を検討していますUITableView

私が今試しているのは、次のメソッドの使用に基づいています。

        [tableView setEditing:YES animated:YES];

        - (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
    forRowAtIndexPath:(NSIndexPath *)indexPath;

このアプローチにはいくつかの利点がありますが、問題が 1 つあります。

試してみると、赤い「削除」ボタンが表示されて機能するようになりますが、それだけです。

「編集」ボタンと「コピー」ボタンも持つことができるメカニズムはありますか? それとも不可能なだけですか?

役立つ情報をありがとう。

4

2 に答える 2

3

編集

TableViewではなく、セルを参照していることを理解しました。セルには、次のスタイルが用意されています。

  • UITableViewCellEditingStyleDelete:セルには削除編集コントロールがあります。このコントロールは、マイナス記号を囲む赤い円です。
  • UITableViewCellEditingStyleInsert:セルには挿入編集コントロールがあります。このコントロールは、プラス記号を囲む緑色の円です。「コピー」にご利用いただけます。
  • UITableViewCellEditingStyleNone:セルには編集コントロールがありません。

あなたがあなた自身で実装しなければならないさらなるスタイル。

元の回答

editButtonItemのメソッドを使用できますUIViewController。タイトルと関連する状態を「編集」と「完了」(「コピー」ではない)の間で切り替えるバーボタンアイテムを返します。デフォルトのボタンアクションはすでにsetEditing:animated:メソッドを呼び出しています。

別の状態が必要な場合は、独自のBarButtonItemを作成する必要があります。

于 2012-08-08T08:41:50.990 に答える
1
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [DummyData removeObjectAtIndex:indexPath.row];
        [_tableView reloadData];
    }       
}

このコードを使用します。UITableViewCellEditingStyleInsertで同じことをしてください。

于 2012-09-26T13:23:09.617 に答える