

UITableViewに編集モードを実装すると、「編集」ボタンを押下しなくても、右から左のスワイプで削除できるようになりますが  
編集モードを押下した場合のみ削除可能にしたいです。

要するに、右から左のスワイプで削除できないようにしたいのですが、  
方法ありますでしょうか。  
調べるとできるようなのですが、具体的な方法が見つかりませんでした。

編集ボタンを押下していないのに、編集（削除）できてしまうことが  
変だと思うのですが。。

Swift 3にてよろしくお願いいたします。


CC BY-SA 3.0
2017-09-08T01:33:02.870
37791
2017-09-08T05:01:41.087
2017-09-08T04:45:40.840
5519
25275
question
swift3 uitableview
UITableViewの削除ボタン無効に関して


`UITableViewDelegate`の`tableView(_:editingStyleForRowAt:)`をオーバーライドして、条件によって返す値を変更します。

テーブルビューが編集モードのときだけ削除のボタンを表示し、横方向にスワイプした時には何も表示しないとするには、下記のように`tableView.isEditing`プロパティをチェックして、編集モードなら`.delete`を返し、そうでなければ`.
none`を返すようにします。

[code]

    override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        if tableView.isEditing {
            return .delete
        }
        return .none
    }
    
[/code]

このメソッドは行ごとにセルの編集スタイルをカスタマイズできます。実装しなかった場合は、デフォルトで`.delete`と解釈されます。そのため、何もしなければ編集モードやスワイプの際に削除ボタンが表示されます。


CC BY-SA 3.0
2017-09-08T05:01:41.087
37799
2017-09-08T05:01:41.087
5519
37791
answer