中安拓也のブログ

プログラミングについて書くブログ

UICollectionViewセルのイベントを無効にする

表題のしょーもない問題に時間をかけてしまったのでメモ。

開発環境

  • Xcode: 7.3
  • Swift: 2.2
  • OS X EI Capitan(10.11.4)

    前回記事の家計簿アプリで曜日と前月/次月の日付も選択できてしまう問題があったため解決策を調べていたんですが、TableViewのCellを選択不可にする方法がのっているサイトしか見つかりませんでした。。。

    ※赤枠部分のタッチイベントのみを無効にしたいf:id:l08084:20160529173206p:plain

検索に引っかからなかった理由としては、UICollectionViewに限らず、UIImageView、UILabelなどと共通のやり方でできるからですね(基礎っぽい)。

以下解決策

CollectionViewにあるすべてのセルの選択を不可にする

CollectionViewのCellのUser Interaction Enabledのチェックを外します。

f:id:l08084:20160529173454p:plain

CollectionViewにある特定のセルの選択を不可にする

コードで指定します。

// Cellのタッチイベントを無効にする

cell.userInteractionEnabled = false