5

ページングスクロールビューに水平視差を実装しようとしています。これにより、1つのビューがx方向に速く進むように見えますが、同じ場所に「着地」します(たとえば、(0,0))。これが私の一般的なセットアップ/ビュー階層です:

  • (スクロールイベントをインターセプト/パススルーする透過スクローラー)
  • (x方向に1.2倍のペースで移動したいが、「ランディングスポット」を超えないオブジェクトオーバーレイ)
  • (x方向に1.0倍のペースで移動したい別のオーバーレイ)

contentOffsetを変更する必要があることはわかっています。また、すべてのデリゲートが同じ方向に1倍のペースで移動できるように、すべてのデリゲートをセットアップしています...解決策に関するヒントはありますか?

4

1 に答える 1

3

現在の設定を維持したい場合は-(void)scrollViewDidScroll:(UIScrollView *)scroller、スクロールイベントを追跡しているスクローラーでデリゲートメソッドを使用するだけです。この方法では、コンテンツオフセットを追跡し、速度乗数を使用して他のビューを希望どおりに移動します。

ただし、これは2つのスクロールビューで簡単に実行でき、一方が移動するとcontentOffset、同じ-(void)scrollViewDidScroll:(UIScrollView *)scrollerデリゲートメソッドで追跡し、それに応じてもう一方を移動します。

contentOffsetさらに、2つのスクロールビューのサイズが異なる場合、デリゲートメソッドでの追跡を実現-(void)scrollViewDidScroll:(UIScrollView *)scrollerし、値とスクロールビューを使用してcontentSizeスクロールビューの移動距離のパーセンテージを取得し、単純contentOffsetにそのパーセンテージをスクロールするためのセカンダリscrollview contentSize

さらに説明が必要な場合はお知らせください。

于 2013-01-01T18:33:26.300 に答える