如何根据swift4或5中的图像大小使图像View高度和宽度(纵横比)动态变化?

How to make image View Height and width (Aspect Ratio) dynamic according to the image size in swift 4 or 5?

我有一个集合视图,我在其中填充从后端获取的图像。我正在使用 AutoLayout 并且我静态地将 imageview 的高度设置为 180,将宽度设置为屏幕宽度。但我了解到,每张图片都有不同的高度和宽度,这是我从后端获得的。那么,如何设计我的图像视图,以便我可以以原始大小显示图像?

首先,去掉imageView上设置的高宽约束

接下来,将图像视图的前导、尾随、顶部、底部约束设置为0。

您可以通过下面的代码获取图片大小。

let image = UIImage(named: "spider.jpeg")
let imageSize = image?.size

通过图片大小设置单元格大小如下

extension ViewController: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
    
    ...
    
func collectionView(_ collectionView: UICollectionView, layout    collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return yourImageSize
    }
}