繁体   English   中英

如何将UIScrollView缩放到UIImage的大小?

[英]How do I make a UIScrollView zoom to size of UIImage?

现在,当我双击UIScrollView时,我运行以下代码(摘自Apple自己的示例代码):

#define ZOOM_STEP 1.5
float newScale = [imageScrollView zoomScale] * ZOOM_STEP;
CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint];
[imageScrollView zoomToRect:zoomRect animated:YES];

但是,我已将最大缩放比例设置为3,但我想弄清楚如何将双击缩放比例缩放为1px = 1px,这就是说,UIScrollView会放大到其中的UIImage的实际大小。 但是我不确定如何计算图像的大小以用于缩放比例?

我跟踪了从中获取的示例代码。 这是ScrollViewSuite中的TapToZoom项目,该项目可从http://developer.apple.com/iphone获得

我将计算newScale的行更改为滚动视图的框架大小与图像视图的图像大小之间的比率。 这具有放大所需的效果,直到以1:1的分辨率显示图像。

注意:我还要确保名为imageView的UIImageView是一个类变量。 在原始示例代码中,它是在viewDidLoad:方法中本地声明的。

需要注意的是,滚动视图和图像具有相同的x / y比。 我只对宽度做过数学。

- (void)tapDetectingImageView:(TapDetectingImageView *)view gotDoubleTapAtPoint:(CGPoint)tapPoint {
    // double tap zooms in on them image to a 1:1 resolution (based on width)
    float newScale =  imageView.image.size.width / imageScrollView.frame.size.width;
    CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint];
    [imageScrollView zoomToRect:zoomRect animated:YES];
}

暂无
暂无

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

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