2012-12-04 77 views
5

我試圖在分頁滾動視圖上實現水平視差,這使得一個視圖看起來在x方向上前進得更快,但在相同位置「降落」(例如,說( 0,0))。這是我的一般設置/視圖層次:水平視差滾動UIScrollView iOS

  • (透明卷軸,其攔截/穿過渦旋 事件)
  • (對象重疊,我想移動在x方向 1.2倍的速度,但沒有按「T超越它的‘着陸點’)
  • (另一個疊加,我想以1.0倍的速度在x 方向移動)

我知道它是做什麼用修改contentOffset和我有我的刪除將所有設置關閉,以便它們都能以相同的方向以1倍的速度移動......對解決方案有什麼提示?

回答

3

如果您想保留當前的設置,您只需要使用-(void)scrollViewDidScroll:(UIScrollView *)scroller委託方法和正在跟蹤滾動事件的滾動器。在這種方法中,您將跟蹤內容偏移量,然後使用您的速度乘數以您希望的方式移動其他視圖。

但是,您只需2個滾動視圖即可輕鬆完成此操作,並且當您移動時,您可以在同一個-(void)scrollViewDidScroll:(UIScrollView *)scroller代表方法中跟蹤其contentOffset,並相應地移動另一個。

此外,如果兩個scrollviews的大小不同,自然的視差效果是非常容易實現的-(void)scrollViewDidScroll:(UIScrollView *)scroller委託方法跟蹤contentOffset,然後使用值和滾動型的contentSize得到的百分比多遠滾動視圖移動,然後簡單地設置第二個滾動視圖的contentOffset滾動它的百分比contentSize

讓我知道你是否需要進一步解釋。

+0

如何獲得次要視圖每次都在同一地點登陸?兩個滾輪的contentSize應該相同嗎?該應用程序是應用程序商店中的Instago,我希望主頁上的幻燈片中的彩色框顯示位置在觸摸後以不同的速率移動。我需要層以不同的速率移動,我不太確定如何將層移動到另一個層的百分比來幫助實現這種效果。 – nmock

+0

如果你想下載一個具有影響的應用程序,我正在討論檢查https://itunes.apple.com/us/app/american-revolution-interactive/id489614145?mt=8(它是免費的)。在這個應用程序中,背景和時間軸(前景)具有不同的寬度。因此,每個移動相同的百分比,但前景的10%多於背景的10%,所以前景看起來移動得更快。如果你想保持視圖相同的contentSize,你仍然可以選擇更快的移動,但移動更快的移動將不得不在移動較慢的移動之前停止移動。 –

+0

這是爲你工作嗎? –