読者です 読者をやめる 読者になる 読者になる

使って創ってApp

ソフトウェアを使ったり作ったりするブログです

UITableViewのCellを選択不可にする

iOSアプリ開発で、UITableView の Cell を選択させない方法を調べたので、メモします。

開発環境

TableView にある全ての Cell を選択不可にする

TableView の Selection プロパティを設定します。

  1. Storyboard や xib ファイルで TableView を選択して、Attributes Inspector を開く
  2. Selection プロパティを No Selection に設定

    f:id:hitxutokun:20151227214255p:plain

TableView にある特定の Cell を選択不可にする

プログラムで指定します。

// UITableViewCell のインスタンス cell をすでに作成してるとして
cell.selectionStyle = UITableViewCellSelectionStyle.None

また、Prototype Cell や Static Cells のテーブルなら、Attributes Inspector からでも設定できます。Selection プロパティを None に設定します。

f:id:hitxutokun:20151227215418p:plain

まとめ

TableView の Cell を選択不可にするには2通りの方法がある。

  • UITableView の Selection プロパティを No Selection に設定する
  • UITableViewCell の Selection プロパティを None に設定する

余談

iOSアプリ開発中に UITableView の Cell が選択不可になったため、この件を調べました。これらのプロパティはもちろん設定していませんし、UITableView の delegate, datasource はちゃんと設定してありました。その TableView を削除して作り直しても駄目で、Storyboard のソースも調べてみましたが原因は解りませんでした。結局プロジェクトごと作り直しました。

まぁ、自主的に Cell を選択不可にする方法がわかったので良しとします。原因はまた今度探ってみます。