2

UIScrollView を使用したピンチ ズーム機能に慣れています。しかし、問題はスクロールビューでの画像のアスペクトフィットです。

現在、私はこれを持っています、下の画像:

ここに画像の説明を入力

しかし、以下の画像のように画像を画面に合わせたい:

ここに画像の説明を入力

ランドスケープでも同じ動作です。どうすればこれを達成できますか?

以下はコードです:

- (void)viewDidLoad
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    imgView.image = image;
    CGSize imageSize = image.size;
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);
    imgView.frame = rect;
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height);
    scrollView.maximumZoomScale = 4.0;
    scrollView.minimumZoomScale = 1.0;
    scrollView.delegate = self;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    CGSize imageSize = image.size;
    CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);
    imgView.frame = rect;

    [scrollView setContentOffset:CGPointMake(0, 0)]; 

    return YES;
}
4

1 に答える 1

4

UIImageView を、それを含む UIScrollView のサイズではなく、画像の元のサイズに設定しています。

- (void)viewDidLoad
{
    UIImage *image = [UIImage imageWithData:appDelegate.selectedOriginalImage];
    imgView.image = image;

    imgView.frame = scrollView.bounds;
    [imgView setContentMode:UIViewContentModeScaleAspectFit];
    scrollView.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height);
    scrollView.maximumZoomScale = 4.0;
    scrollView.minimumZoomScale = 1.0;
    scrollView.delegate = self;
}

viewToZoom デリゲート メソッドで imgView を返すことを忘れないでください

于 2012-12-06T15:04:25.060 に答える