两个UIScrollViews,同步滚动

paw*_*opa 3 iphone cocoa-touch uiscrollview uikit ios

我有两个UIScrollViews,它们彼此重叠.

                                        UIView
                                           |
                              --------------------------
                              |                        |
                         UIScrollView1            UIScrollView2
Run Code Online (Sandbox Code Playgroud)

我希望它能以下列方式工作.如果我滚动UIScrollView2,UIScrollView1也应滚动相同的contentOffset.它必须同步完成,因此使用scrollViewDidScroll不是一种选择.你们有什么想法吗,怎么办?

源代码

    _prContentGridView = [[PRContentGridView alloc] initWithFrame:frame];
    _prContentGridView.minimumZoomScale = 0.25;
    _prContentGridView.maximumZoomScale = 2.0;
    _prContentGridView.delegate = self;

    _prBackgroundGridView = [[PRBackgroundGridView alloc] initWithFrame:frame];

    [self addSubview:_prBackgroundGridView];
    [self addSubview:_prContentGridView];
Run Code Online (Sandbox Code Playgroud)

委托方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (_prContentGridView.scrollEnabled == YES) {
        CGPoint p = CGPointMake(scrollView.contentOffset.x -   _prevousContentOffsetOfContentScrollView.x, scrollView.contentOffset.y - _prevousContentOffsetOfContentScrollView.y);
        [_prBackgroundGridView setContentOffset:p animated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)

mer*_*nix 8

使用UIScrollViewDelegate协议方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  if (scrollView == UIScrollView1){
    UIScrollView2.contentOffset = scrollView.contentOffset;
  }else{
    UIScrollView1.contentOffset = scrollView.contentOffset;
  }
}
Run Code Online (Sandbox Code Playgroud)