我有2个滚动视图,较小的scrollview需要滚动一点点(并在下一个“页面”停止)而不是更大的scrollview。所以基本上,滚动较大的scrollview滚动较小的scrollview,但速度比更大的卷轴视图。(令我感到困惑)。
所以scrollView1(较大的)和scrollView2,较小:当您滑动scrollView1时,scrollView2也滚动但速度较慢。启用了Paging并且已根据scrollView2的内容设置了contentSizes。
我在计算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];
}
}
答案 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;