首页 > 解决方案 > 具有恒定高度和动态宽度的 UICollectionView 单元格取决于 UIImageView 宽度

问题描述

如何根据图像视图设置集合视图单元格宽度。我已经尝试使用下面的代码,但所有单元格的宽度都是相同的。我已将图像视图的高度约束设置为 100,宽度约束 >= 50,并将内容模式设置为宽高比合适。 if let flowLayout = itemOfferCollectionView.collectionViewLayout as? UICollectionViewFlowLayout { flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize }

标签: swiftxcodeuiimageviewuicollectionviewcell

解决方案


我已经为布局设置了这个设置,以使其成为 selfSizing

let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize

您还必须像这样在单元格中设置 contentView 和 imageView 的约束

contentView.topAnchor.constraint(equalTo: topAnchor).isActive = true
        contentView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
        contentView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
        contentView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true

imageView.topAnchor.constraint(equalTo: topAnchor, constant: 0).isActive = true
        imageView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
        imageView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
        imageView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
        
    

推荐阅读