未分類

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

NavigationControllerを用いた画面遷移(コードのみ)

NavigationControllerの画面遷移で、ストーリーボードの黄色丸からドラックする方法ではなく、コードのみを用いて遷移する方法。 準備 ・遷移元Viewcontroller、遷移先Next …

no image

tableViewの空のCellを非表示にする

viewDidLoadに以下を追加するだけ。 //空のセルの線を非表示 tableView.tableFooterView = UIView()

no image

アプリのVersionとBuild番号の使い分け

versionを変更したら、appstoreに表示されてるバージョンに反映される。 基本的にバージョンアップしたらversionをインクリメントする。 Buildを変更しても、appstore上では何 …

no image

StaticCellでコードからセルに変更を加えたい時の対処法

StaticCellだと、セルに情報を入れるメソッドfunc tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath …

no image

テロップ文字位置を一括で変更する方法

字幕の位置を全てのクリップで上方向に移動させたい時など。   ①任意の字幕クリップにて、エフェクトコントロールのモーションで文字位置を修正 ②モーションを右クリックでコピー ③位置を変更した …