【Swift】UITableViewの編集モード時に左端のアイコンを消す方法

このページでは、下の写真のようにUITableViewの編集モードに表示される左端のアイコンを非表示にする方法を解説します。

実装方法

該当する処理だけ抜き出すと次のようになります。

extension ViewController: UITableViewDelegate {
  // ① 編集モードの時に左端のチェックマークを消す
  func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    return .none
}

  // ② アイコンがあった所のスペースをなくす
  func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
    return false
  }
}

editingStyleForRowAtはチェックマークのデザインを決める処理ですね。

ここで「.none」を返すとアイコンを消すことができます。

しかし、アイコンが消えても、アイコン分のスペースが残った状態なので、shouldIndentWhileEditingRowAtの処理で、falseを返します。

これで、アイコン分のスペースを無くすことが可能です。


コードを書いてもチェックが消えない場合

セルの複数選択が可能になっている場合、先ほどのコードを書いても適用されません。

そのため、次のように書いてセルを複数選択できないようにしておきます。

tableView.allowsMultipleSelectionDuringEditing = false

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA