我有一个UIImageView,用户可以下载不同格式的UIImages.问题是,我需要根据给定图像的比例调整UIImageView的大小.

目前,我使用的是Aspect fit,但UIImageView本身的大部分仍然是空的.我想让UIImageView根据其内容自行调整大小.例如,如果图片是1:1,4:3,6:2,16:9...

enter image description here

非常感谢您的帮助.

按照要求,这就是我想要的:

enter image description here

我有一个正方形的UIImageView,在16:7或其他什么地方加载了一个图像,UIImageView调整了大小以适应图像的大小…

推荐答案

看起来您想要根据图像比率和容器视图的大小调整ImageView的大小,下面是Swift中的示例(抱歉,前面的答案有一个bug,我已经修复了):

   let containerView = UIView(frame: CGRect(x:0,y:0,width:320,height:500))
   let imageView = UIImageView()

    if let image = UIImage(named: "a_image") {
        let ratio = image.size.width / image.size.height
        if containerView.frame.width > containerView.frame.height {
            let newHeight = containerView.frame.width / ratio
            imageView.frame.size = CGSize(width: containerView.frame.width, height: newHeight)
        }
        else{
            let newWidth = containerView.frame.height * ratio
            imageView.frame.size = CGSize(width: newWidth, height: containerView.frame.height)
        }
    }

Ios相关问答推荐

带外部笔划的圆形进度视图

AlGolia InstantSearch Swift Package Manager引发编译错误

如果条件不满足,S从@ViewBuilder返回什么?

在视图上执行手势会阻止相机操作

如何在@AppStorage中存储字体?

拖动手势导致 sim 崩溃 Swift UI

在 iOS 上以后台模式安排任务(屏幕时间 API)

如何为 Firebase Auth 实施 Firebase AppCheck?

创建 Flutter 项目时,如何从我的系统中删除特定的开发者身份?

ITMS-90432:将应用上传到应用store 时出现问题

当 Swift 枚举具有 any existential 作为其关联值之一时,我如何使它符合 `Equatable`?

拔下设备后,DriverKit USB 驱动程序 (dext) 进程不会终止

无法在 CollectionView 中禁用部分弹跳 - 组合布局

如何将私钥添加到分发证书?

iPhone 6 和 6 Plus 媒体查询

获取 iOS 上所有联系人的列表

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

正确的领域使用模式/最佳实践?

'无效更新:第 0 节中的无效行数

iOS13状态栏背景 colored颜色 与大文本模式下的导航栏不同