1

我需要使用 UIScrollView 为我的应用程序创建一个主菜单。我里面有一些可以点击的图片。当我滚动 UIScrollView 时,我需要在背景上移动其他两个视图来创建视差效果。有人可以给我一个示例代码吗?我正在尝试与

-(void) scrollViewDidScroll:(UIScrollView *)scrollView

但我找不到任何关于申请我的项目的富有成效的例子。

4

2 回答 2

4

这个怎么样?imageView 向上滚动的速度是 UIScrollView 的一半。

    float y = scrollView.contentOffset.y;
    CGRect imageFrame = self.imageView.frame;
    imageFrame.origin.y = y/2;
    self.imageView.frame = imageFrame;
于 2012-02-17T19:49:28.117 回答
2

这个 GitHub 存储库有一个运行良好的惊人实现: https ://github.com/ralfbernert/RBParallaxScrolling

这是我对代码的测试,使用带有分页(在前面)和背景中的图像的 UIScrollView:http: //clrk.it/211o3h0A053m

执行此视差技巧的代码如下:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == _scrollView) {
        float speedFactor = _headerImageScrollView.contentSize.width / _scrollView.contentSize.width;
        [_headerImageScrollView setContentOffset:CGPointMake(speedFactor * _scrollView.contentOffset.x, 0)];
    }
}

在这段代码中,我有一个包含 UIImageView 的 UIScrollView;我称之为_headerImageScrollView

在它前面,我有第二个带有分页和三个标签的 UIScrollView。那个叫_scrollView

于 2012-11-20T05:05:29.993 回答