编辑:解决方案是以编程方式添加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
当图像是肖像时,结果如下:
CGSize - 宽度: 1280.0 - 身高: 1920.0
使用此方法设置图像:
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,图像被剪裁。