UITableViewのCellを選択不可にする
iOSアプリ開発で、UITableView の Cell を選択させない方法を調べたので、メモします。
開発環境
TableView にある全ての Cell を選択不可にする
TableView の Selection プロパティを設定します。
- Storyboard や xib ファイルで TableView を選択して、Attributes Inspector を開く
- Selection プロパティを No Selection に設定
TableView にある特定の Cell を選択不可にする
プログラムで指定します。
// UITableViewCell のインスタンス cell をすでに作成してるとして
cell.selectionStyle = UITableViewCellSelectionStyle.None
cell.selectionStyle = UITableViewCellSelectionStyle.None
また、Prototype Cell や Static Cells のテーブルなら、Attributes Inspector からでも設定できます。Selection プロパティを None に設定します。
まとめ
TableView の Cell を選択不可にするには2通りの方法がある。
- UITableView の Selection プロパティを No Selection に設定する
- UITableViewCell の Selection プロパティを None に設定する
余談
iOSアプリ開発中に UITableView の Cell が選択不可になったため、この件を調べました。これらのプロパティはもちろん設定していませんし、UITableView の delegate, datasource はちゃんと設定してありました。その TableView を削除して作り直しても駄目で、Storyboard のソースも調べてみましたが原因は解りませんでした。結局プロジェクトごと作り直しました。
まぁ、自主的に Cell を選択不可にする方法がわかったので良しとします。原因はまた今度探ってみます。