Ячейка UICollectionView с постоянной высотой и динамической шириной в зависимости от ширины UIImageView

#swift #xcode #uiimageview #uicollectionviewcell

#swift #xcode #uiimageview #ячейка uicollectionviewcell

Вопрос:

Как я могу установить ширину ячейки представления коллекции в зависимости от вида изображения. Я пробовал использовать приведенный ниже код, но ширина одинакова для всех ячеек. Я установил ограничение высоты изображения как 100, а ограничение ширины > = 50 и режим содержимого как соответствие аспекту. if let flowLayout = itemOfferCollectionView.collectionViewLayout as? UICollectionViewFlowLayout { flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize }

Ответ №1:

Я разместил эти настройки для макета, чтобы сделать его саморазмерным

 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