未分類

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のセルの強調・選択時にセルの見た目を変化させる

-未分類

執筆者:

関連記事

PremierePro テキストの一部分だけ色(フォント)を変える

テキストの一部分だけ色やフォントを変えたいが、テキストスタイルは一つのクリップ全てに反映されてしまい、一部の文字だけ変えることができない。 手動で選択してカラーやフォントを変えるしかないっぽい。 エッ …

no image

DateFormatterの使い方

Date型の日付を文字列にして表示する。 let date = Date() import Foundation //フォーマットを指定 let formatter = DateFormatter() …

no image

ファイル作成時のサブクラスとは

新しいファイル作成時にサブクラスを設定できる。 サブクラスはどこのクラスを継承するのかを決める。 通常なら、TableViewControllerのデリゲートメソッドを使おうとするとプロトコルやデリゲ …

no image

引数と返り値を持つメソッドを作る

//受け取った引数に10を足した数を返すメソッド func add(x:Int) -> Int{ return x + 10 } add(x: 1) //出力:11 add(x: 5) //出力 …

マスクを使って動画を表示させる

エフェクトコントロール→不透明度→マスク   長方形のマスクは、長方形の少し外れたところでshifを押すと拡縮の矢印が出る。 反転にチェックを入れると、表示範囲を反転できる。 このようにテレ …