Я хочу отобразить изображение в каждой ячейке UICollectionView
. Изображения должны иметь ту же ширину, что и экран, но их высота будет зависеть от их размера. Я хотел бы убедиться, что изображения ограничены диапазоном пропорций (например, от 1,91 до 4/5). Изображения, хранящиеся на сервере, могут иметь любое соотношение сторон;таким образом, они не ограничены. Когда они отображаются в UICollectionViewCell
, они должны масштабироваться, чтобы заполнить их, если они меньше или больше, чем диапазон ограничивающей рамки (то есть от 1,91 до 4/5).
Например, если изображение имеет 2: 1соотношение сторон, оно должно быть зафиксировано до 1,91: 1. Если он имеет соотношение сторон 1: 2, он должен быть зафиксирован до 4: 5. Я хотел бы использовать новые UICollectionViewCompositionalLayout
.
Для этого усилия я изначально думал о предварительном вычислении высот и их сохранении вмодель данных и обновление высоты просмотра на основе этого. См. Ограничения высоты вида установлены неправильно, когда я прокручиваю UICollectionView вверх и вниз , но у меня возникают проблемы с этим подходом.
Мой вопрос для начинающих заключается в том, возможно ли определить два ограничениядля того же якоря, чтобы определить диапазон?
_imageContainer.heightAnchor.constraintGreaterThanOrEqualToAnchor(_imageContainer.widthAnchor, multiplier: 4.0/5).active = true
_imageContainer.heightAnchor.constraintLessThanOrEqualToAnchor(_imageContainer.widthAnchor, multiplier: 1.91).active = true
Цель с помощью вышеприведенного кода - определить ограничение диапазона. Второе ограничение переопределяет первое, так что первое больше не действует? Во-вторых, каков будет рекомендуемый подход для решения вышеупомянутой проблемы с отображением изображений на разных высотах?