1

両方の画像にズーム機能が必要な単一のビューに 2 つの画像を表示しています。ページの高さは約 1000 ピクセルで、画像はページの上部と下部に表示する必要があります。そのために、2 つの異なるスクロール ビューを追加し、画像ビューを追加しましたscroll views

scroll view現在、ズームは 2 番目の画像に対して適切に機能していますが、最初の画像はズームアウトすると左上隅に表示されます。2枚の画像があるようです。

私が使用しているデリゲートメソッドは次のとおりです。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    return [[scrollView subviews] objectAtIndex:0];
}

私が欠けているものはありますか?scroll viewsまたは、単一ページに2つある場合、ズームを有効にすることは実際には不可能ですか。

4

1 に答える 1

4

単一ページに2つのスクロールビューがある場合にズームを有効にするコードは次のとおりです。

//最初の ImageView を作成

image1 =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 220)];
image1.image = [UIImage imageNamed:@"image1.png"];
image1.contentMode = UIViewContentModeScaleToFill;

// Scrollview 1 の値を作成して設定する

scroll1 =[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 220)];
scroll1.contentSize = image1.frame.size;
[scroll1 setMinimumZoomScale:1.0];
[scroll1 setMaximumZoomScale:4.0];
scroll1.delegate = self;
scroll1.clipsToBounds = YES;
scroll1.tag =0;
[scroll1 addSubview:image1];
image1.userInteractionEnabled =YES;
scroll1.zoomScale = 1;
[self.view addSubview:scroll1];

2 番目の Scrollview と ImageView

// 2 番目の ImageView を作成します

image2 =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 260)];
image2.image = [UIImage imageNamed:@"image2.png"];
image2.contentMode = UIViewContentModeScaleToFill;

// 2 番目の ScrollView を作成します

scroll2 =[[UIScrollView alloc] initWithFrame:CGRectMake(0, 220, 320, 260)];
scroll2.contentSize = image2.frame.size;
[scroll2 setMinimumZoomScale:1.0];
[scroll2 setMaximumZoomScale:4.0];
scroll2.delegate = self;
scroll2.clipsToBounds = YES;
scroll2.tag =1;
[scroll2 addSubview:image2];

image2.userInteractionEnabled =YES;
scroll2.zoomScale = 1;
[self.view addSubview:scroll2];

すでに私のために働いているので、これはあなたを助けます。

委任方法は次のとおりです。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    if (scrollView.tag ==0) {
        return image1;
    }
    else return image2;
}
于 2013-09-19T08:29:40.957 に答える