Добавление изображения в UIImageView в UITableViewCell изменяет высоту просмотра изображения нежелательно - PullRequest
1 голос
/ 10 апреля 2020

У меня есть UIImageView внутри UITableViewCell. Высота ячейки изменяется в зависимости от количества строк текста в UILabel с использованием предполагаемой высоты строки. Я хочу, чтобы это изображение было центрировано вертикально в ячейке, с фиксированной шириной и высотой> = 40 и <= 80. Когда высота ячейки увеличивается, я хочу, чтобы изображение увеличилось до этой максимальной высоты, а затем остановилось, всегда оставаясь вертикально по центру. Для этого я добавил эти два ограничения по высоте и ограничение по ширине, а также ограничения в верхней и нижней части ячейки с константой 5 для некоторого заполнения и приоритетом 250. Добавив цвет фона к представлению изображения, которое вы можете увидеть это выкладывается, как и ожидалось. Но когда я устанавливаю изображение в окне просмотра изображения, высота неожиданно меняется. </p>

С 3 строками в метке:

  • без изображения: просмотр изображения составляет ~ 60pt в высоту ожидается
  • с изображением: высота изображения 80pt - ожидается, что оно будет ~ 60

enter image description here

с 6 строками в метке:

  • без изображения: высота изображения, как и ожидалось, равна 80pt
  • с изображением: высота изображения, как и ожидалось, составляет 80pt

enter image description here

Почему это так? Как я могу убедиться, что изображение в представлении изображения не влияет на размер представления изображения, так как я хочу, чтобы высота ячейки, определяемая ограничениями автоматического макета, определяла его?

Вот пример проекта.

1 Ответ

0 голосов
/ 14 апреля 2020

Несмотря на то, что я не смог получить ожидаемую высоту просмотра изображения с помощью этих ограничений автоматического макета, я достиг цели с помощью одного ограничения высоты и вручную установил его constant в layoutSubviews из UITableViewCell, рассчитывается как max(40, min(contentView.bounds.height - 5 * 2, 80)). А затем добавили ограничение CenterY к суперпредставлению, чтобы оно оставалось по центру. Теперь добавление изображения в представление изображения не приводит к неожиданному изменению высоты просмотра изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...