0

我有 2 个滚动视图,较小的滚动视图需要比较大的滚动视图滚动得慢一点(并在下一个“页面上停止”)。所以基本上,滚动较大的滚动视图会滚动较小的滚动视图,但速度比较大的滚动视图慢. (我知道很困惑)。

所以scrollView1(越大)和scrollView2越小:当您滑动scrollView1时,scrollView2也在滚动但速度较慢。两者都启用了分页,并且它们的 contentSizes 已经根据 scrollView2 的内容进行了设置。

我只是无法计算 2 之间的偏移量,因此它们可以完美滚动。

在此处输入图像描述

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

2 回答 2

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 滚动到可见更好)。

于 2013-08-24T06:37:19.930 回答
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;
于 2013-08-24T06:38:18.170 回答