我需要使用 UIScrollView 为我的应用程序创建一个主菜单。我里面有一些可以点击的图片。当我滚动 UIScrollView 时,我需要在背景上移动其他两个视图来创建视差效果。有人可以给我一个示例代码吗?我正在尝试与
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
但我找不到任何关于申请我的项目的富有成效的例子。
我需要使用 UIScrollView 为我的应用程序创建一个主菜单。我里面有一些可以点击的图片。当我滚动 UIScrollView 时,我需要在背景上移动其他两个视图来创建视差效果。有人可以给我一个示例代码吗?我正在尝试与
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
但我找不到任何关于申请我的项目的富有成效的例子。
这个怎么样?imageView 向上滚动的速度是 UIScrollView 的一半。
float y = scrollView.contentOffset.y;
CGRect imageFrame = self.imageView.frame;
imageFrame.origin.y = y/2;
self.imageView.frame = imageFrame;
这个 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
。