gpt4 book ai didi

ios - 在 scaleAspectFit 之后调整 UIImageView 框架的大小

转载 作者:可可西里 更新时间:2023-10-31 23:35:56 26 4
gpt4 key购买 nike

我在 IB 中创建了一个内容模式为 Aspect Fit 的 UIImageView。然后我从 URL 将大图像加载到该 View 。

@IBOutlet weak var pictureView: UIImageView!

NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, _, error) -> Void in
guard let data = data where error == nil,
let image = UIImage(data: data)
else {
print(error?.localizedDescription)
return
}

pictureView.image = image
pictureView.clipsToBounds = true
setNeedsLayout()
layoutIfNeeded()

}).resume()

图像加载到 UIImageView 中,Aspect Fit 会正确调整图像的大小以将其全部显示在框架中,但是 UIImageView 的框架设置为原始大图像的大小。我有这个巨大的框架包裹着这个较小的调整大小的图像。我需要 UIImageView 框架来紧紧包裹 Aspect Fit UIImage,摆脱所有其他格式。

Huge frame

我是否需要以某种方式为 UIImageView 手动计算新的帧大小,或者我是否缺少某处设置?

编辑:

我还尝试了以下方法来调整图像周围 UIImageView 框架的大小:

pictureView.frame = AVMakeRectWithAspectRatioInsideRect(picture.size, pictureView.frame)

和...

pictureView.frame = CGRectMake(self.pictureView.frame.origin.x, self.pictureView.frame.origin.y, pictureImage.size.width, pictureImage.size.height)

我也尝试过压缩阻力设置。

最佳答案

好吧,这涉及到一些事情。

依赖关系:

1) 图片大小。如果图像的高宽比不大于或等于 ImageView 的高宽比,则会显示黑色空间,因为与 ImageView 匹配的比例会变小。

2) 我不确定你的 imageView 的约束,因为我可以看到它是一个 @IBOutlet。

我对你的句子感到困惑“但是 UIImageView 的框架设置为原始大图像的大小。我有这个巨大的框架包裹着这个较小的调整大小的图像。”

我相信您想要做的是将图像设置到 imageView 中,但似乎您是将 UIImageView 设置为图像大小,然后将图像设置为 UIImageView,这使得调试起来非常困惑。你能更详细地解释一下你想要发生什么吗?

编辑

有一个带框架的 ImageView——这个框架永远不会不同。

contentMode 将改变图像在 imageView 上的显示方式

UIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFill 模式缩放图像以适应或填充空间,同时保持图像的原始纵横比。

UIViewContentModeScaleToFill 值在不考虑原始纵横比的情况下缩放图像,这会导致图像出现扭曲。

UIViewContentModeScaleToFill如果需要,可以通过更改内容的纵横比来缩放内容以适应自身大小的选项。*(在大多数情况下不推荐)

UIViewContentModeScaleAspectFit通过保持纵横比来缩放内容以适应 View 大小的选项。 View 边界的任何剩余区域都是透明的。*(这保证了整个图像适合屏幕。所以如果图像的比例小于屏幕,那么在某些边缘,顶部/底部或左侧/右侧会有黑色)

UIViewContentModeScaleAspectFill缩放内容以填充 View 大小的选项。内容的某些部分可能会被裁剪以填充 View 的边界。*(这个保证全图都拍了)

关于ios - 在 scaleAspectFit 之后调整 UIImageView 框架的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com