我有一个UIImageView
用户可以下载UIImages
各种格式。问题是我需要UIImageView
根据给定图像的比例调整大小。
目前,我正在使用Aspect fit
,但是UIImageView
其自身的大部分仍然是空的。我想要UIImageView
根据其内容调整自身大小。例如,如果图片是 1:1、4:3、6:2、16:9...
非常感谢帮助。
按照要求,这就是我想要的:
我有过一次UIImageView
那是方形的,加载了 16:7 或其他尺寸的图像,并且UIImageView
调整大小以适合图像的大小...
我花了很多时间试图找到与您遇到的相同问题的解决方案,这是唯一对我有用的解决方案(Swift 4,Xcode 9.2):
class ScaledHeightImageView: UIImageView {
override var intrinsicContentSize: CGSize {
if let myImage = self.image {
let myImageWidth = myImage.size.width
let myImageHeight = myImage.size.height
let myViewWidth = self.frame.size.width
let ratio = myViewWidth/myImageWidth
let scaledHeight = myImageHeight * ratio
return CGSize(width: myViewWidth, height: scaledHeight)
}
return CGSize(width: -1.0, height: -1.0)
}
}
将类添加到项目中并将UIImageView设置为自定义类ScaledHeightImageView。图像视图的内容模式是Aspect Fit。
My problem与这篇文章中所述的相同。在我的原型 TableViewCell 的 ContentView 中,我有一个限制在每个边缘的垂直 StackView。 StackView 内部有一个 Label、ImageView 和另一个 Label。将 ImageView 设置为 AspectFit 还不够。图像将具有正确的大小和比例,但 ImageView 没有包裹实际图像,在图像和标签之间留下一堆额外的空间(就像上图所示)。 ImageView 高度似乎与原始图像的高度匹配,而不是与调整大小的图像的高度匹配(在aspectFit 完成工作之后)。由于各种原因,我发现的其他解决方案并没有完全解决问题。我希望这可以帮助别人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)