我正在尝试在UIScrollView内部的UIView上创建视差效果。效果似乎可以实现,但不够好。
- 首先,我向UIScrollView添加了两个UIView子视图,并设置了UIScrollView的contentSize。
- 这些视图的大小相加,创建了一个{320, 1000}的contentSize。
接着我在scrollViewDidScroll中实现了以下内容:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat offsetY = scrollView.contentOffset.y; CGFloat percentage = offsetY / scrollView.contentSize.height; NSLog(@"percent = %f", percentage); if (offsetY < 0) { firstView.center = CGPointMake(firstView.center.x, firstView.center.y - percentage * 10); } else if (offsetY > 0){ firstView.center = CGPointMake(firstView.center.x, firstView.center.y + percentage * 10); } }
这些代码确实可以创建视差效果,但是当滚动继续时,如果我滚动到原始起始位置,视图不会返回到其原始位置。
我尝试过操作视图的层和框架,但结果都一样。
非常感谢任何帮助。