使UIImage缩放到UIScrollViewer中的屏幕大小

时间:2015-09-11 04:37:40

标签: ios swift uiscrollview uiimageview

编辑:解决方案是以编程方式添加UIScrollView和UIImageView。问题可能出在通过Storyboard设置的自动约束选项。所以我想知道如何在故事板中设置这样的视图并实际工作。让这个问题成为其他人想知道的问题。

我在UIScrollViewer中有一个UIImageViwer。我已经在网上找到了这个问题的几个例子,我已经将它们实现为:

func setZoomScale() {
    let imageViewSize = imageView.bounds.size
    let scrollViewSize = scrollView.bounds.size
    let widthScale = scrollViewSize.width / imageViewSize.width
    let heightScale = scrollViewSize.height / imageViewSize.height

    let minZoomScale = min(widthScale, heightScale)
    scrollView.minimumZoomScale = minZoomScale
    scrollView.zoomScale = minZoomScale
}

问题是图像不适合屏幕尺寸,它的尺寸更小或更大。

例如这个风景图片: 这是UIScrollViewer报告的值

  

最小变焦:0.12254901960784313 ZOOM:0.12471373968656897

对于600x667点刻度,图像大小报告为: CGSize    - 宽度: 4896.0    - 身高: 3264.0

Landscape zooming

当图像是肖像时,结果如下:

  

CGSize      - 宽度: 1280.0      - 身高: 1920.0

enter image description here

使用此方法设置图像:

self.imageView.image = image
self.imageView.contentMode = UIViewContentMode.ScaleAspectFit

var frame = self.imageView.frame;
frame.size = image!.size;
self.imageView.frame = frame;

self.scrollView.contentSize = self.imageView.frame.size
self.scrollView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]

self.setZoomScale()

如果我不这样做,UIImageViewer.size报告为600x667点,使minimumZoom = 1,图像被剪裁。

0 个答案:

没有答案