我需要使用UIScrollView为我的应用创建一个主菜单。我有一些可以点击的图像。当我滚动UIScrollView时,我需要在背景上有另外两个视图移动创建视差效果。 有人能为我提供示例代码吗?我正在尝试使用
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
但是我找不到关于申请我的项目的任何有效例子。
答案 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
。