Я создал UIView
, который состоит из 3 UILabel
и 1 UIImageView
, как показано ниже -
UILabel
имеют значение 0 для lines
, поэтому высота UILabel
изменяется динамически.
Я добавил такие ограничения, что высота изображения зависит от высоты UILabel
, как показано ниже -
Я установил ширину UIImageView
на константу 100.
Я хотел бы установить ограничение на UIImageView
, чтобы высота UIImageView
была равна высоте всего вида.
Я попытался добавить ограничение «Равная высота» для UIImageView
и всего вида. Я заметил, что высота всего вида зависит от высоты UIImageView
, а не то, что высота UIImageView
зависит от всего вида, как я хочу.
Может ли кто-нибудь указать, как я могу добавить ограничение к UIImageView
, чтобы его высота была равна его супервизору, но высота супервизора не зависела от UIImageView
?
Редактировать -
На изображении ниже показана проблема, с которой я столкнулся. Когда изображение настроено на UIImageView
, высота просмотра изменяется.
Я хочу, чтобы высота UIImageView
была равна высоте представления, но я не хочу, чтобы высота представления зависела от высоты UIImageView
.
в чем проблема? На скриншоте нормально смотрится?
@JatinKathrotiya Я не установил ограничение высоты для представления, но я установил ограничения сверху и снизу для 3 меток, чтобы высота представления зависела от его подпредставлений (3 метки)
Вы пробовали добавить ограничение для Image bottom
, равного View bottom
?
И, если у этих UILabel может быть пустая строка, вам нужно установить ограничение для изображения о minimum height
. Например, Image Height >= 100
.
@Fogmeister Я добавил правку, которая показывает снимок экрана с проблемой, с которой я столкнулся
@AechoLiu Я добавил ограничение для Image bottom
, равное View bottom
. Проблема в том, что изображение увеличивается при добавлении изображения, как показано на скриншоте, который я добавил при редактировании.
если вы установите верхнее и нижнее ограничение, тогда нет необходимости повышать ограничение
и вам необходимо установить высокий приоритет вертикального объятия контента и сопротивления сжатию этикеток
@JatinKathrotiya Да, мне нужно было изменить сопротивление вертикальному сжатию контента, чтобы заставить его работать
Я считаю, что вы не добавили ограничение высоты в супервизор. Установите ограничение высоты для супервизора, а затем добавьте ограничение «Равная высота» для UIImageView и всего вида.
Похоже, вам нужно уменьшить vertical content compression resistance
при просмотре изображения.
Установите очень низкое значение, например 100, и попробуйте еще раз.
Фактически, сопротивление сжатию вашего UIImageView
по умолчанию составляет 750, в то время как объем содержимого корневого UIView
составляет 250. Это означает, что механизм AutoLayout все правильно раскладывает. Вы можете изменить сопротивление вертикальному сжатию на значение ниже 250 (UILayoutPriority.defaultLow - 1
) для достижения желаемой компоновки.
вы установили ограничение по высоте для просмотра?