【问题标题】:How do I make a UIScrollView zoom to size of UIImage?如何使 UIScrollView 缩放到 UIImage 的大小?
【发布时间】:2009-10-01 20:30:12
【问题描述】:

现在,当我双击 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 的实际大小在里面。但我不确定如何计算图像的大小以便将其用于缩放?

【问题讨论】:

    标签: iphone uiscrollview uiimage


    【解决方案1】:

    我找到了您从中提取的示例代码。它是 ScrollViewSuite 中的 TapToZoom 项目,地址为 http://developer.apple.com/iphone

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

    【讨论】:

    • 谢谢,布拉德!那完全做到了。就像你指出的那样,高度/高度将与宽度/宽度相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多