两个UIScrollViews,其中一个代表用于缩放

时间:2014-08-09 18:48:26

标签: ios objective-c uiscrollview

我在屏幕上有两个scrollView 一个scrollView没有调用委托自我,因为一个scrollView是第二个scrollView的副本,但颜色有一些差异。

用于缩放调用方法

- (UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return _images[scrollView.tag];
}

但仅适用于第一个scrollView。

在scrollViewDidZoom中的

我喜欢那个

scrollSecond.zoomScale = scrollFirst.zoomScale;

但没有,因为对于scrollSecond没什么可以缩放的。

如何为第二个scrollview复制动作缩放。

1 个答案:

答案 0 :(得分:0)

in - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 你需要为两个scrollview返回一些东西。

此外,在 - (void)scrollViewDidZoom:(UIScrollView *)scrollView中,您需要为另一个scrollView设置相同的缩放比例。

我刚试过它,当我放大一个scrollView时,另一个放大了。

以下是使其运行所需的所有代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.scrollview1 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    self.scrollview2 = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 320, 320, 320)];
    [self.view addSubview:self.scrollview1];
    [self.view addSubview:self.scrollview2];
    self.scrollview1.delegate = self;
    self.scrollview2.delegate = self;
    self.scrollview1.maximumZoomScale = 3.0;
    self.scrollview2.maximumZoomScale = 3.0;

    self.image1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    self.image1.image = [UIImage imageNamed:@"image.jpg"];
    self.image2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    self.image2.image = [UIImage imageNamed:@"image.jpg"];

    [self.scrollview1 addSubview:self.image1];
    [self.scrollview2 addSubview:self.image2];
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
    [self.scrollview2 setZoomScale:self.scrollview1.zoomScale];
}

- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    if (scrollView == self.scrollview1)
        return self.image1;
    else
        return self.image2;
}