【问题标题】:UIScrollView menu and parallax effectUIScrollView 菜单和视差效果
【发布时间】:2011-12-17 09:54:50
【问题描述】:
我需要使用 UIScrollView 为我的应用创建一个主菜单。我里面有一些可以点击的图片。当我滚动 UIScrollView 时,我需要在背景上移动其他两个视图来创建视差效果。
有人可以给我一个示例代码吗?我正在尝试与
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
但我找不到任何关于在我的项目中应用的有效示例。
【问题讨论】:
标签:
iphone
menu
uiscrollview
parallax
【解决方案1】:
这是怎么回事? imageView 向上滚动的速度是 UIScrollView 的一半。
float y = scrollView.contentOffset.y;
CGRect imageFrame = self.imageView.frame;
imageFrame.origin.y = y/2;
self.imageView.frame = imageFrame;
【解决方案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。