AutoLayout: проблема с масштабированием UIImageView в UIStackView / UITableViewCell - PullRequest
0 голосов
/ 27 августа 2018

У меня есть UITableViewCell, который содержит UIStackView с вертикальными представлениями.Я установил UITableViewAutomaticDimension в качестве высоты строки UITableView и предполагаемой высоты.Одно из подпредставлений UIStackView содержит два UIImageViews, например:

enter image description here

Малое - avatarImageView, а большее - messageImageView.Вот ограничения:

avatarImageView:

enter image description here

messageImageView:

enter image description here

Затем я пытаюсь в методе делегата cellForRowAt обновить высоту messageImageView, чтобы она соответствовала масштабу изображения (и я позволил ширине 200px для изображенияview).

let ratio = image.size.width / image.size.height
cell.messageImageViewHeightConstraint?.constant = 200 * ratio

Я пытаюсь использовать это изображение, например:

enter image description here

Но это не работаетвообще, вместо этого изображение занимает слишком много места, и по какой-то причине вид изображения аватара оказывается скрытым (ячейка обведена красным, над ней находится ячейка только с текстом, который работает нормально):

enter image description here

Так чего мне здесь не хватает?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 27 августа 2018

Ваш ratio инвертирован по сравнению с тем, как вы его используете:

Самым простым решением является деление на ratio вместо умножения на него:

let ratio = image.size.width / image.size.height
cell.messageImageViewHeightConstraint?.constant = 200 / ratio

илиесли хотите, измените расчет ratio:

let ratio = image.size.height / image.size.width
cell.messageImageViewHeightConstraint?.constant = 200 * ratio
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...