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

时间:2009-10-01 20:30:12

标签: iphone uiscrollview 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的实际大小在里面。但我不知道如何计算图像的大小以便将其用于缩放比例?

1 个答案:

答案 0 :(得分:1)

我找到了你要拉的示例代码。 ScrollViewSuite中的TapToZoom项目位于http://developer.apple.com/iphone

我将计算newScale的行更改为Scroll View框架大小与Image View图像大小之间的比率。这具有您想要放大的效果,直到图像以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];
}