2012-12-04 19 views
5

ページビューのスクロールビューに水平視差を実装しようとしています。これにより、1つのビューがx方向に高速に進みますが、同じスポットには「ランド」が表示されます(たとえば、 0,0))。私はX 方向に1.2倍のペースを移動するが、doesnのしたい( イベント透明スクロール、インターセプト/スクロールを通過する) 水平視差スクロールUIScrollView iOS

  • (オブジェクト・オーバーレイ

    • :ここに私の一般的なセットアップ/ビューの階層であります「Tは、それが私はそれがcontentOffsetとIを変更すると何かを持って知っている 『着陸地点』)
    • (私はXの1.0倍のペースで 方向を移動する別のオーバーレイ)

    だ上回ります私の持っているゲートはすべて同じセットアップで1xペースで動くことができるようにセットアップされています...解決策に関するヒント?

  • 答えて

    3

    現在の設定を保持したい場合は、スクロールイベントを追跡しているスクロールで-(void)scrollViewDidScroll:(UIScrollView *)scroller代理人メソッドを使用するだけです。この方法では、コンテンツオフセットを追跡し、スピード乗数を使用して、他のビューを望むように移動します。

    ただし、2つのスクロールビューで簡単にこれを行うことができます。移動すると同じ-(void)scrollViewDidScroll:(UIScrollView *)scroller代理人方法でそのcontentOffsetを追跡し、それに従って適切に移動します。

    2 scrollviewsのサイズが異なる場合はさらに、自然な視差効果が-(void)scrollViewDidScroll:(UIScrollView *)scrollerデリゲートメソッドでcontentOffsetを追跡して、どこまでscrollviewの割合を取得する値とscrollviewのcontentSizeを使用して達成することが信じられないほど簡単ですセカンダリスクロールビューのcontentOffsetを設定して、その割合をスクロールします(contentSize)。

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

    +0

    毎回同じ場所にセカンダリビューを表示するにはどうすればよいですか?両方のスクロールのcontentSizeは同じにする必要がありますか?アプリはApp StoreのInstagoですが、スライドショーのカラーボックスをホームページに表示して、タッチした後に別のレートで移動するようにします。私はレイヤーを異なる速度で動かす必要があります。そして、レイヤーを他のレイヤーのパーセンテージとしてどのように動かすことがこの効果を達成するのに役立つかはあまりよく分かりません。 – nmock

    +0

    影響を受けるアプリをダウンロードする場合は、https://itunes.apple.com/us/app/american-revolution-interactive/id489614145?mt=8(無料)をチェックしてください。このアプリでは、バックグラウンドとタイムライン(前景)の幅が異なります。したがって、前景の10%がバックグラウンドの10%よりも多くのピクセルを移動するので、前景はより速く移動するように見えます。同じcontentSizeを表示したままにしたい場合は、1つの移動を速く選択できますが、より速く動くものは遅く動く前に移動を停止する必要があります。 –

    +0

    これはうまくいくのですか? –

    関連する問題