简体   繁体   English

UIImageView捏放大UIScrollView

[英]UIImageView pinch zooming in UIScrollView

I am comfortable with pinch zooming functionality using UIScrollView. 我对使用UIScrollView的捏缩放功能感到满意。 But the problem is the aspect fit of image in scrollview. 但是问题是滚动视图中图像的外观适合度。

Currently, I am having this, below image: 目前,我在下图显示此图片:

在此处输入图片说明

But I want image to be fit in screen like below image: 但是我希望图像适合如下图所示的屏幕:

在此处输入图片说明

And same behavior for landscape. 与景观行为相同。 How can I achieve this? 我该如何实现?

Below is the code: 下面是代码:

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

You are setting the UIImageView to the original size of the image instead of the size of the UIScrollView that contains it. 您正在将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;
}

remember to return the imgView on the viewToZoom delegate method 记得在viewToZoom委托方法上返回imgView

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM