UIScrollView菜单和视差效果

时间:2011-12-17 09:54:51

标签: iphone menu uiscrollview parallax

我需要使用UIScrollView为我的应用创建一个主菜单。我有一些可以点击的图像。当我滚动UIScrollView时,我需要在背景上有另外两个视图移动创建视差效果。 有人能为我提供示例代码吗?我正在尝试使用

-(void) scrollViewDidScroll:(UIScrollView *)scrollView

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

2 个答案:

答案 0 :(得分:3)

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

    float y = scrollView.contentOffset.y;
    CGRect imageFrame = self.imageView.frame;
    imageFrame.origin.y = y/2;
    self.imageView.frame = imageFrame;

答案 1 :(得分: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