未分類

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

モーダルからdissmissで戻った時に処理を行う方法

遷移先がModalの場合、遷移先から戻った時に呼ばれるメソッドviewWillApperが使えない。 遷移先を.fullscreenに変更することでviewWillApperが使えるようになるが、ここ …

no image

テロップの文字を移動すると見切れる時の対処法

ベクトルモーションで文字全体を見えるよう位置調整してから、通常のモーションで位置を動かす。 【premiere pro】テキスト/文字の端が切れる・見えなくなる時の解決方法の話。

no image

collectionViewで起動時に特定のセルを選択する

起動時に特定のセルを選択した状態にする。 以下をviewDidLoadに書く。 rowの数字で何番目のセルか指定できる。 //起動時に選択されるセル let testIndexpath: IndexP …

no image

PremiereProのテキストアニメーション簡単なやつ色々

・ぼかしからぼやっと出てくる エフェクト「ブラー(ガウス)」→開始でブラー値300、10フレーム後で0 参考:https://youtu.be/pamD-YrZGuY   ・1文字ずつ出てる …

no image

Date型またはString型で日付を比較する方法

Date型またはString型の日付の大小を比較する方法が載っている↓ 参考:【Swift4】Date 日付と日時を比較する方法(NSDate)【Objective-C】