iphone - 两个 UIScrollViews,同步滚动

标签 iphone ios cocoa-touch uiscrollview uikit

我有两个 UIScrollView,它们在彼此之上。

                                        UIView
                                           |
                              --------------------------
                              |                        |
                         UIScrollView1            UIScrollView2

我希望它以下列方式工作。如果我滚动 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];

委托(delegate)方法

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

最佳答案

使用 UIScrollViewDelegate 协议(protocol)方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  if (scrollView == UIScrollView1){
    UIScrollView2.contentOffset = scrollView.contentOffset;
  }else{
    UIScrollView1.contentOffset = scrollView.contentOffset;
  }
}

关于iphone - 两个 UIScrollViews,同步滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330110/

相关文章:

IOS旧版本检查

Iphone:UITableView 如何检测该行被选中

iphone - iPhone 中的 CX 创新存储集成

objective-c - 设置重用同一对象的核心数据关系会删除以前的关系

ios - 更改位置服务中的选项

ios - 如何使用 iOS 状态恢复来恢复 UIPopoverController?

iOS7 UIModalTransitionStyleFlipHorizo​​ntal 在过渡后反弹

objective-c - 添加对象从数组 : not copying into global NSMutableArray

iphone - 从 iOS 应用程序开发转向 Mac 应用程序开发时需要克服的最大障碍是什么?

ios - 为什么我没有收到 eBay 的产品价格回复?