UIScrollView のページング/スクロールをより高速にしたいので、ユーザーが指を離すと、加速の速度に関係なく、次のページが通常よりも速くなります。
質問する
9614 次
2 に答える
5
あなたの質問を正しく理解できれば、ページにスナップするように ScrollView をセットアップしました (pagingEnabled = YES)。ユーザーが指を離したときに、現在よりも早く最も近いページにスナップしたいですか?
それがあなたが達成しようとしているものである場合、これは私が推奨するものです:
- pagingEnabled を無効にします (pagingEnabled = NO)。自分たちでやります。
- いくつかのオブジェクト (おそらく ViewController) をスクロール ビューのデリゲートとして設定します。
- Scrollview デリゲートで、メソッドをオーバーライドします
scrollViewDidEndDragging:willDecelerate:
。scrollViewWillEndDragging:withVelocity:targetContentOffset:
ドラッグの速度を取得できるように、メソッドをオーバーライドすることもできます。 - では
scrollViewDidEndDragging:willDecelerate:
、ドラッグの方向 (他の方法で取得した速度を使用) と、最も近いページへのオフセットを計算できます。UIView
そこからは、必要な期間のアニメーション ブロックを使用してスクロールビューの contentOffset を設定するだけです。例えば:
[UIView animateWithDuration:.25f animations:^{
scrollview.contentOffset = calculatedCGPoint;
}];
それはあなたに望ましい効果を与えるはずです。
于 2013-02-08T20:46:54.737 に答える