7

UIScrollView のページング/スクロールをより高速にしたいので、ユーザーが指を離すと、加速の速度に関係なく、次のページが通常よりも速くなります。

4

2 に答える 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 に答える