質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2060閲覧

TableViewの複数選択を動的に切り替えた際のチェックマークアイコンを設定できない件について

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/09/21 09:54

いつもお世話になります、

ボタンをタップしてTableViewを編集モードにし、
セルの左端をチェックマーク(青)にしたいのですが削除マーク(赤)になってしまいます。
一度セルの並び替えボタン(三)をタップすると、削除マーク(赤)が消えてチェックマーク(青)になるのですが、何がいけないのでしょうか?

イメージ説明

swift

1// ボタンをタップしてTableViewの編集モードを切り替える 2@IBAction func fileTableViewEditBtnTapped(_ sender: UIButton) { 3 if fileTableViewEditStatus == false { 4 fileTableViewEditStatus = true 5 fileTableViewEditBtn.setTitle("cancel", for: .normal) 6 7 UIView.animate(withDuration: 0.4, animations: { 8 self.fileNameTableView.isEditing = true 9 self.fileNameTableView.allowsMultipleSelectionDuringEditing = true 10 }) 11 } else { 12 fileTableViewEditStatus = false 13 fileTableViewEditBtn.setTitle("edit", for: .normal) 14 15 UIView.animate(withDuration: 0.4, animations: { 16 self.fileNameTableView.isEditing = false 17 self.fileNameTableView.allowsMultipleSelectionDuringEditing = false 18 }) 19 } 20 } 21 22// UITableViewCellEditingStyle => 23/* 24public enum EditingStyle : Int { 25 case none // => 何もなし 26 case delete // => 削除マーク(赤) 27 case insert // => インサートマーク?(緑) 28} 29*/ 30 31// 下の2つのメソッドは設定していません 32 33 /* 34 // indicateEditButton 35 func tableView(_ tableView: UITableView, editingStyleForRowAt indecxPath: IndexPath) -> UITableViewCellEditingStyle { 36 return .none 37 } 38 */ 39 40 /* 41 // spaceOfEditIco 42 func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPaht: IndexPath) -> Bool { 43 return true 44 } 45 */ 46

viewDidLoadのなかに編集モードを変更する記述を突っ込むと正常に動きますが、ボタンで動かすと不具合が出ます

イメージ説明

swift

1// MARK: - LifeCycle - 2 override func viewDidLoad() { 3 super.viewDidLoad() 4 // もろもろ省略 5 6 // tableViewの編集を可能にする 7 fileNameTableView.isEditing = true 8 fileNameTableView.allowsMultipleSelectionDuringEditing = true 9 } 10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Xcode Version 10.0でUITableViewCellEditingStyleの定義は

swift

1public enum EditingStyle : Int { 2 case none 3 case delete 4 case insert 5 }

なのですが、tableView(_:editingStyleForRowAt) -> UITableViewCellEditingStyle

swift

1UITableViewCellEditingStyle.init(rawValue: 3)!

を返してあげて、アイコン用のスペースをtableView(_:shouldIndentWhileEditingRowAt) -> Boolで設定してあげたら動きました。
enumに、3はないように見えるのですが、3を返していいのでしょうか?

投稿2018/09/21 10:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問