Как установить ограничение автоматического размещения, чтобы высота UIImageView была равна высоте супервизора?

Я создал UIView, который состоит из 3 UILabel и 1 UIImageView, как показано ниже -

Как установить ограничение автоматического размещения, чтобы высота UIImageView была равна высоте супервизора?

UILabel имеют значение 0 для lines, поэтому высота UILabel изменяется динамически.

Я добавил такие ограничения, что высота изображения зависит от высоты UILabel, как показано ниже -

Как установить ограничение автоматического размещения, чтобы высота UIImageView была равна высоте супервизора?

Я установил ширину UIImageView на константу 100.

Я хотел бы установить ограничение на UIImageView, чтобы высота UIImageView была равна высоте всего вида.

Я попытался добавить ограничение «Равная высота» для UIImageView и всего вида. Я заметил, что высота всего вида зависит от высоты UIImageView, а не то, что высота UIImageView зависит от всего вида, как я хочу.

Может ли кто-нибудь указать, как я могу добавить ограничение к UIImageView, чтобы его высота была равна его супервизору, но высота супервизора не зависела от UIImageView?

Редактировать - На изображении ниже показана проблема, с которой я столкнулся. Когда изображение настроено на UIImageView, высота просмотра изменяется. Я хочу, чтобы высота UIImageView была равна высоте представления, но я не хочу, чтобы высота представления зависела от высоты UIImageView.

Как установить ограничение автоматического размещения, чтобы высота UIImageView была равна высоте супервизора?

вы установили ограничение по высоте для просмотра?

Jatin Kathrotiya 18.12.2018 09:04

в чем проблема? На скриншоте нормально смотрится?

Fogmeister 18.12.2018 09:04

@JatinKathrotiya Я не установил ограничение высоты для представления, но я установил ограничения сверху и снизу для 3 меток, чтобы высота представления зависела от его подпредставлений (3 метки)

user10461683 18.12.2018 09:08

Вы пробовали добавить ограничение для Image bottom, равного View bottom?

AechoLiu 18.12.2018 09:09

И, если у этих UILabel может быть пустая строка, вам нужно установить ограничение для изображения о minimum height. Например, Image Height >= 100.

AechoLiu 18.12.2018 09:12

@Fogmeister Я добавил правку, которая показывает снимок экрана с проблемой, с которой я столкнулся

user10461683 18.12.2018 09:19

@AechoLiu Я добавил ограничение для Image bottom, равное View bottom. Проблема в том, что изображение увеличивается при добавлении изображения, как показано на скриншоте, который я добавил при редактировании.

user10461683 18.12.2018 09:22

если вы установите верхнее и нижнее ограничение, тогда нет необходимости повышать ограничение

Jatin Kathrotiya 18.12.2018 09:53

и вам необходимо установить высокий приоритет вертикального объятия контента и сопротивления сжатию этикеток

Jatin Kathrotiya 18.12.2018 09:55

@JatinKathrotiya Да, мне нужно было изменить сопротивление вертикальному сжатию контента, чтобы заставить его работать

user10461683 18.12.2018 09:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
10
65
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я считаю, что вы не добавили ограничение высоты в супервизор. Установите ограничение высоты для супервизора, а затем добавьте ограничение «Равная высота» для UIImageView и всего вида.

Ответ принят как подходящий

Похоже, вам нужно уменьшить vertical content compression resistance при просмотре изображения.

Установите очень низкое значение, например 100, и попробуйте еще раз.

Фактически, сопротивление сжатию вашего UIImageView по умолчанию составляет 750, в то время как объем содержимого корневого UIView составляет 250. Это означает, что механизм AutoLayout все правильно раскладывает. Вы можете изменить сопротивление вертикальному сжатию на значение ниже 250 (UILayoutPriority.defaultLow - 1) для достижения желаемой компоновки.

Другие вопросы по теме