スクロールビューの速度がしきい値速度を下回ったときにイベントをトリガーできるように、ユーザーが指を離した後にスクロール UIScrollView の速度を取得しようとしています。
Appleのドキュメントには、スクロールビューの速度の単位はポイントであると記載されており、UIScrollView Delegate method などの場合、1秒あたり(pts / s)になると思い- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
ます。
したがって、スクロールビューの減速の単位は1 秒あたりのポイント (pts/s^2)になると思いますが、そうではないようです。
パン ジェスチャ イベントが終了するとすぐに (つまり、指を離すとすぐに)、メソッド- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
とからプルされたスクロール スクロール ビューからプルされたパラメータの例を次に示し- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
ます。
(初期オフセット、目標オフセット、初期速度、最終速度、減速度、経過時間) =
- (364.0、2664.5、4.619940、0、0.998、3.068916)
- (2595.5、3288.5、1.398724、0、0.998、2.485449)
- (3094.5、1907.0、-2.389578、0、0.998、2.752163)
- (143.0、1275.5、2.279252、0、0.998、2.718653)
どこ:
- 初期オフセット = scrollView.contentOffset.y 指を離すとすぐに
- ターゲット オフセット = targetContentOffset->y 指を離すとすぐに、または scrollview の減速が完了すると scrollView.contentOffset.y
- 指を離すとすぐに初速度 = 速度.y
- スクロールビューを自然に停止するまでスクロールさせるため、最終速度 = 0
- 減速 = scrollView.decelerationRate 指を離すとすぐに
- 経過時間 = 指が離されてからスクロールビューが静止するまでの時間