5

私はUITableView編集モードで作成しました。このテーブルビューを含むviewcontrollerのviewDidLoad関数で強制的に編集モードにします。テーブルの各行には、左側に削除アイコンre-arrange、右側にアイコンがあります。実装しました

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{
       return UITableViewCellEditingStyleDelete;
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{
     return YES;
}

問題は、左側に赤い削除アイコンを表示したくない各行にあります。右側に再配置アイコンを表示するだけです。ユーザーが削除したいときは、行をスワイプして削除できます。

これを行いたい理由は、ユーザーに行の製品を削除することを勧めないためです。編集ボタンを配置できることを理解しています。ユーザーがこのボタンをクリックすると、編集モードになりますが、そうしたくありません。ユーザーがビューコントローラーに入ったときに、最初に再配置機能を表示したいと思います.

私はそうすることができますか?

スクリーンショットを載せておきます

これは私が得たものです

これが私が見せたいものです。 ユーザーがスワイプしたときに、削除ボタンを右側の配置アイコンに重ねて表示したい

最初の画像は私が得たものです。

2番目の画像は、実際に表示したいものです。ユーザーがスワイプしたときに、削除ボタンを右側の配置アイコンに重ねて表示したい

4

1 に答える 1

10

テーブルビューが編集モードのときにスワイプを使用して削除することはできないと思います。代わりにUISwipeGesture、独自のカスタム ボタンを追加して実装できます。

ジェスチャを使用している場合は、次のデリゲート メソッドを実装する必要がありますUITableView

編集スタイルを none に設定:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
     return UITableViewCellEditingStyleNone; 
}

これは、テーブル ビューが編集モードのときに行をインデントしないことを示しています。

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

にスワイプジェスチャーを追加する方法については、このリンクを参照してくださいUITableView

于 2013-05-30T09:53:46.333 に答える