【Swift】UICollectionViewが一番下までスクロールしたことを検知する

今回は、Swift の UICollectionView が一番下までスクロールしたことを検知する方法についてです。
UICollectionView の高さを取得できてしまえば、案外簡単でした!

サンプルコードは下記の通りです。

// スクロール中を検知
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let scroll = scrollView.contentOffset.y + scrollView.frame.size.height
    if scrollView.contentSize.height <= scroll {
        // 一番下までスクロールした時に実行したい処理を記述
    }
}

上記の scrollViewDidScroll() はスクロール中に呼び出されるので、この中で一番したかどうかの処理を行なっています。
といっても、3行目でスクロール位置を取得し、4行目で UICollectionView の高さと比較し、スクロール位置の方と等しいか、大きくなったら、一番下までスクロールしたと判断しています。
スクロール量は scrollView.contentOffset.y + scrollView.frame.size.height で取得でき、UICollectionView の高さは scrollView.contentSize.height で取得できます。
処理はこれだけです!
あとは、任意の処理を追加して実行してください。
私はスクロール位置によって、ボタンを表示/非表示にする、という処理を記述しましたが、問題なく動作しました!

 

以上、Swift の UICollectioんView が一番下までスクロールしたかどうかを検知する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG