2012-12-04 60 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

这是为你工作吗? –