渐进式滚动子scrollView
Posted
技术标签:
【中文标题】渐进式滚动子scrollView【英文标题】:Progressively scrolling child scrollView 【发布时间】:2013-08-24 06:25:41 【问题描述】:我有 2 个滚动视图,较小的滚动视图需要比较大的滚动视图滚动慢一点(并在下一个“页面上停止”)。所以基本上,滚动较大的滚动视图会滚动较小的滚动视图,但速度比更大的滚动视图。(我知道很困惑)。
所以 scrollView1(较大)和 scrollView2,较小:当您滑动 scrollView1 时,scrollView2 也在滚动,但速度较慢。两者都启用了分页,并且它们的 contentSizes 已经根据 scrollView2 的内容设置。
我只是无法计算两者之间的偏移量,因此它们可以完美滚动。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
if ( scrollView == scrollView1 )
CGFloat xOffset = (scrollView2.contentSize.width * scrollView1.contentSize.width); // the issue
[scrollView2 scrollRectToVisible:CGRectMake(xOffset, 0, scrollView2.frame.size.width, scrollView2.frame.size.height) animated:YES];
【问题讨论】:
【参考方案1】:尝试将这两行替换为:
float xOffset = scrollView1.contentOffset.x * (scrollView2.frame.size.width / scrollView1.frame.size.width);
[scrollView2 setContentOffSet:CGPointMake(xOffset,0) animated:YES];
这将获取 scrollView1 的偏移量,将其除以两个视图之间的帧大小差异,并将 scrollView2 的 contentOffset 设置为该值(这比将 rect 滚动到可见更好)。
【讨论】:
【参考方案2】:这对我有用,试试吧..
CGPoint offset = CGPointMake(scroll1.contentOffset.x, scroll1.contentOffset.y);
offset.x /= 3;
offset.y /= 3;
// Scroll the background scroll view by some smaller offset
scroll2.contentOffset = offset;
【讨论】:
@Jsdodgers 感谢您的编辑,您能告诉我编辑器中的代码和文本是怎样的... 您只需要在代码和文本之间有一行,并且在每行代码之前有四个空格。以上是关于渐进式滚动子scrollView的主要内容,如果未能解决你的问题,请参考以下文章
VUE项目中图片加载过大处理方式-渐进式方式-懒加载方式--附源码