こんにちは!

21年新卒のTAROです!

 

今回ブログを書く機会をいただき、iOSアプリでは必ず使うと言ってもいいUICollectionViewについて書こうと思います。

ある案件で縦横スクロール可能なコレクションビューを実装する機会があったので、自分がどのように実装したか紹介します。

ちなみに動作は動画のような感じになります。

ボタンをタップすることで該当のセルに移動する感じです。

 

 

実装方法の概要

今回の実装は大まかに以下の順番で行いました。

  1. UICollectionViewFlowLayoutを継承したクラスを定義する
  2. 定義したクラスを使ってUICollectionViewを作成する
  3. 作成したコレクションビューとボタンを画面に追加する
  4. ボタンをタップしたらコレクションビューの該当の場所に遷移するようにする

以下で詳しく紹介します。

 

UICollectionViewFlowLayout を継承したクラスを定義する

今回は縦横のスクロールを可能にするため、UICollectionViewFlowLayoutを継承したカスタムのクラスを定義します。

ちなみに、UICollectionViewFlowLayout はコレクションビューのレイアウトを管理するクラスです。

今回は以下のような実装を行いました。

詳しい実装内容についてはぜひ調べてみてください。

 

コレクションビューとボタンを画面に追加する

先程作成したレイアウトクラスを使いコレクションビューを作成します。

また、コレクションビューとボタンを画面に追加します。

今回は、storyboardは使わずにSnapkitを使ってコードのみでUIを作成しました。

 

 

ボタンをタップした時の処理を記述する

ボタンをタップした時にコレクションビューの任意の場所に遷移するようにします。

setContentOffset(_:animated:) を使います。

上記のコードでボタンタップ時にCollectionViewの任意の場所に遷移できます。

 

まとめ

今回は縦横スクロールできるコレクションビューの実装例を紹介してみました。

縦スクロールできるコレクションビューはデフォルトの挙動で実現できるのですが、

横スクロールが入った途端に難しくなるのが新たな発見でした。

また機会があれば他の要件について、どのようなアプローチがあるのか調べてみようと思います。

最後まで読んでいただきありがとうございます!

Follow me!