今回は、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 が一番下までスクロールしたかどうかを検知する方法についてでした。
ご参考になれば幸いです。