未分類

collectionViewでセルが選択された時に色を変える

投稿日:

collectionViewでセルが選択された時にハイライトをつける関数。
collectionView(_:shouldHighlightItemAt:)

デフォルトでtrueとなっているので、これは書かなくてもOK。

    //セルが選択された時に強調させる
    func collectionView(_ collectionView: UICollectionView,
                        shouldHighlightItemAt indexPath: IndexPath) -> Bool {
        return true
    }

collectionViewでセルが選択された時に色を変える

セルに情報を入れる関数collectionView:cellForItemAt:に以下のコードを追加する。

// セル選択時の色
        let selectedBGView = UIView(frame: cell.frame)
        selectedBGView.backgroundColor = .red
        cell.selectedBackgroundView = selectedBGView

セルのselectedBackgroundViewにUIViewを設定することで、セル選択時にそのUIViewを表示される。
ここでは背景色が赤のviewを設定した。

セルをタップすると赤色になる↓

補足

セルが選択された時の処理についてのメソッド。
ここでは選択されたセルのindex番号をprintしている。

//セルが選択された時の処理
func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) {
        print("Highlighted: \(indexPath)")
    }

またcollectionView:shouldSelectItemAt:も似た機能を持つが、一度タップしたセルの背景色が変更されたままで元に戻らない。
選択した時だけ一時的にハイライトしたい時は上記のcollectionView:shouldHighlightItemAt:を使う。

参考:UICollectionViewのセルの強調・選択時にセルの見た目を変化させる

-未分類

執筆者:

関連記事

no image

マルチデバイスに対応する方法

マルチデバイス対応とは iPhoneのデバイスによって画面サイズが異なるため、それぞれの端末で正常に表示するための対応。 マルチデバイス対応方法 主に3つの方法がある。 ・オートレイアウト ・プログラ …

3Dオブジェクトを効率的に作る

  平面を4つ作成して、位置と回転を調整することで立方体を作成する。 全ての平面のアンカーポイントを立方体の中心に持っていくことで、位置はいじらず回転だけで作れる。このようにより効率的な作成 …

no image

FSCalendarカスタマイズのメモ

5週か6週で行数を変える //5週か6週で行数を変える calendar.placeholderType = .fillHeadTail 該当月が5週なのに、6行表示されるのを防ぐ。 .noneにする …

文字をバラバラに表示させる

バラバラ文字を作る 文字を全選択したら「GG分解」のスクリプトを適用する。 適用すると文字がパーツごとに選択できるようになる。 最終的に表示されるバラバラな状態になるよう位置を調整して、キーを打ってお …

CocoaPodsでライブラリをインストールする手順

1.pod init 最初にPodFileを作成する。 プロジェクトが格納されている上位フォルダを右クリック→サービス→フォルダに新規ターミナル ターミナルに「pod init」を入力してEnter。 …