4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UITableViewの編集モードでセルをタップで選択したい

Last updated at Posted at 2015-09-04

UITableViewの編集モードにて、セルを選択する設定で少しつまづきました。
その後、調べて解決しました。

編集モードで、セルをタップしたい。

この状態から、
screenshot.png

こんな風に行きたい。
screenshot.png

そしてまた戻りたい
screenshot.png

調べると、IBから設定できるようだ

編集時もセルの選択を有効にする
デフォルトのままだと、編集モード時にはセルを選択することができません。編集モード時にも選択を有効にするには、Interface Builderで以前Table ViewのStyleを選んだところ(Attributes Inspectorの上の部分)にある、 Allow Selection While Editingにチェックを入れます。 これで編集モードでも選択が有効になります。

引用元▶︎UITableViewの使い方2:編集モード編

上記サイトの指示通り、Interface BuilderにおいてAttributes Inspectorを開き、Allow Selection While Editingというチェック項目を探したのだが、見当たらない。

本来ならこう表示されてるらしい


引用元▶︎20. UITableView 데이터 편집 및 삭제

僕のはこうなっていた

screenshot.png

見当たらない。バージョンの違いだろうか。

ちゃんとコードありました

このようなUI(あんまりよろしくないですが)は、見ての通りUItableviewに
[self.tableView setEditing:YES animated:YES];
されているのですが、これをすると困ったことに
tableView: didSelectRowAtIndexPath:
が呼ばれなくなります。…ので要するにタップ出来なくなります。
当初、UITapGestureRecognizerで強制的に呼んでいたのですがそうすると今度はデリートボタンの反応がとても悪くなります。
どうすりゃええんやーと思ってリファレンス読み直したらちゃんと
self.tableView.allowsSelectionDuringEditing=YES;
っていうのがありました(汗

引用元▶︎UItableViewで編集モードにしつつタップも有効にする

とのことで。
self.tableView.allowsSelectionDuringEditing=YES;
このコードをviewDidLoadに追加すると、目的は達成されました。

追記・・Attributes Inspectorにもありました

fuzzballさんのご指摘があり、確認するとIBのAttributes Inspectorにもちゃんと設定項目がありました。
チェック項目だったものが、Single,Multipleという選択肢が追加され、プルダウン形式になっていたようです。よく確認できてませんでした。

screenshot.png

Singleを選択すると良いようです
sca.png

fuzzballさんありがとうございました。

4
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?