逐步滚动子滚动视图

时间:2013-08-24 06:25:42

标签: iphone ios uiscrollview

我有2个滚动视图,较小的scrollview需要滚动一点点(并在下一个“页面”停止)而不是更大的scrollview。所以基本上,滚动较大的scrollview滚动较小的scrollview,但速度比更大的卷轴视图。(令我感到困惑)。

所以scrollView1(较大的)和scrollView2,较小:当您滑动scrollView1时,scrollView2也滚动但速度较慢。启用了Paging并且已根据scrollView2的内容设置了contentSizes。

我在计算2之间的偏移时遇到了麻烦,所以它们完全滚动。

enter image description here

- (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];
    }
}

2 个答案:

答案 0 :(得分: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更可见)。

答案 1 :(得分:1)

这对我有用了尝试..

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;