やりたいこと
- UIScrollView, UITableView, UICollectionViewなどがスクロール中かどうか知りたい
- タップはしてないけどまだ慣性スクロールが続いてるとか
- 見た目上動いてないけどユーザーが指を置いていてスクロール状態だとか
解決コード
こんな感じのコードを書けば良い
override func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { isScrolling = true } override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { if decelerate { isScrolling = true } else { isScrolling = false } } override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { isScrolling = false }
isScrolling
が true
のときはスクロール中で false
のときはスクロールしてないとして、他の機能を実装していくといい感じになる。