这是一个相当奇怪的问题。您可能正在考虑“您必须调整UIImageView
,而不是UIImage
”,但我无法使其正常工作,而且我不确定这种情况是否正确。
我想在iOS应用程序中使用.pdf矢量图像。此矢量图像已导出为.pdf
,默认大小为 320宽度。当然,这是矢量,所以它应该完美地扩展。
当我使用该图片(UIImageView
)创建UIImageView(image: vectorImage)
时,它的宽度总是 320 (或缩放@ 2x / @ 3x)。
我已约束UIImageView
左右边距为0。在iPhone 5上,这显示正确,因为它是一个基于320的大小屏幕。但是,在iPhone 6上 - 分辨率不同,基于375的屏幕宽度。
即使imageView被约束到整个宽度(375),其中的UIImage
仍然具有320的大小。
我从未设定过高度。
为了澄清,我正在使用ScaleAspectFit
。这不应该导致图像卡在320。因为我从未设定UIImageView
的高度,所以它应该以正确的拟合开始。
如果我有图像的宽高比,我可以解决这个问题,但这似乎没必要!
正确的结果是图像填充imageView的整个宽度,并且imageView的高度要更改以适合图像。
实际结果是UIImage
的高度和宽度对于所有设备(相对)是相同的,并且UIImageView
的高度对于所有设备都是相同的。由于添加了约束,UIImageView
的宽度不同,但UIImage
内的宽度不会更改。为什么不?
我怀疑 if 导出的矢量图像具有不同的默认大小,结果会有所不同。这是为什么?
答案 0 :(得分:0)
这篇文章获得了很多观点,所以如果对任何人有帮助,也许值得快速回答。
当使用矢量时,您不能将图像和设置为 UIImageView
并期望它从宽度计算出高度,即使将其设置为 ScaleAspectFit
。
解决此问题的一种方法是获取 UIImage
,获取其大小,然后使用它来设置 UIImageView
高度约束。
例如:
let image = UIImage(named: "name")!
let ratio = image.size.height / image.size.width
imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor, multiplier: ratio).isActive = true