效果似乎有效,但效果不好.
>首先,我将两个UIVIEw子视图添加到UIScrollVIEw并设置UIScrollVIEws 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); }}
这些代码行确实产生了视差效果,但是随着滚动继续,如果我滚动到原始的起始位置,则视图不会恢复到原始位置.
我已经尝试 *** 纵视图层和框架,都具有相同的结果.
任何帮助将不胜感激.
解决方法 您所遇到的问题是您将基于偏移量与缩放比例的次要滚动,而不仅仅是当前的偏移量.所以当你从99的偏移增加到100(100)之后,你的辅助卷轴会增加10个,但当你回到99时,你的辅助卷动只能减少9.9,因此不再是这是最后一次你在99.非线性滚动是可能的,但不是你这样做的方式.一个可能的更容易的方式来处理这个是创建一个第二个滚动视图,并将其放在实际的滚动视图之下.使它变得非难处理(setUserInteractionEnabled:false),并在主滚动委托期间修改它的contentOffset,而不是手动移动UIImageVIEw.
- (voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw{ [scrollVIEw2 setContentOffset:CGPointMake(scrollVIEw.contentOffset.x,scrollVIEw.contentOffset.y * someScalingFactor) animated:NO];}
但是请确保不为scrollVIEw2设置委托,否则可能会得到一个循环委托方法调用,这不会为您结束.
总结以上是内存溢出为你收集整理的ios – UIScrollView子视图的视差效果全部内容,希望文章能够帮你解决ios – UIScrollView子视图的视差效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)