0

UIImageView initでスクロールビューを持っています。UIImageViewにボタンを追加します。画像をズームすると、ボタンもズームを実行します。ボタンではなく画像のみをズームするにはどうすればよいですか。お時間いただきありがとうございます。

ここに画像の説明を入力

4

2 に答える 2

2

ズームの影響を受けないようにするボタンやその他のビューをUIScrollView、 と同じレベルのビューに配置しUIScrollViewます。この目的のために設定されたビュー階層の例を次に示します。

ここに画像の説明を入力

スクロール ビューとその中のすべてがズームされます (この場合はイメージ ビュー)。スクロール ビューの下の UIView (この場合、Default.png 画像を含む画像ビュー) では、スクロール ビューがズームされてもズームしません。

編集:

ボタンを画像に対して同じ場所に残すには、サブビューとしてスクロール ビューに追加UIScrollViewDelegateし、View Controller ヘッダーに追加します。UIButtonビュー コントローラーの実装: で初期フレームをキャプチャしviewWillAppear、スクロール ビュー デリゲートscrollViewDidZoomメソッドを使用してボタン フレームを更新し、そのままの状態に保ちます。これにより、パン時にボタンを画像とともに移動させることもできます。

更新されたビュー構造は次のとおりです。

ここに画像の説明を入力

該当するビュー コントローラーのコード セグメント:

@interface MyViewController () {
    CGRect initialButtonFrame;

    ...
}

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    initialButtonFrame = self.button.frame;

    ...
}

- (void)scrollViewDidZoom:(UIScrollView *)sv
{

        self.button.frame = CGRectMake((initialButtonFrame.origin.x * self.scrollView.zoomScale),
                               (initialButtonFrame.origin.y * self.scrollView.zoomScale),
                               initialButtonFrame.size.width,
                               initialButtonFrame.size.height);

...
}

これは、画像内の配置に対してボタンが所定の位置にとどまっていることを示すいくつかの画像です。ボタンの原点は、ズームしていないとき (最初の画像) とズームしているとき (2 番目の画像) で、消防士のコートの中央下部近くの赤い領域の左上近くにあることに注意してください。

ここに画像の説明を入力

ここに画像の説明を入力

于 2012-10-17T11:58:18.563 に答える
0

ボタンがスクロール ビューのサブビューにならないように、imageScrollViewスーパービューの後にボタンを追加します。imageScrollView

于 2012-10-17T11:54:23.027 に答える