iOS Stackview внутри ScrollView с сохранением соотношения сторон изображения - PullRequest
0 голосов
/ 15 октября 2018

У меня проблема с прокручиваемым контентом.По сути, я хочу разместить один ImageView и один Label на экране с шириной ImageView равной screen ширине.height зависит от intrinsic content aspect ratio (в то время как ширина всегда равна ширине экрана).

label составляет 20 интервалов ниже ImageView.Это означает, что вся высота содержимого может быть меньше или равна или даже больше, чем корень view.Я попытался поместить Label и ImageView в StackView (ImageView имеет настройку Aspectfit), затем положить StackView в ScrollView.Установите constraints, как показано ниже.

enter image description here

Проблема заключается в расстоянии между ImageView и верхней Superview и между ImageView и Labelслишком большой (в идеале должно быть 20).Есть ли способ достичь желаемого результата?

PS: я пытался установить распределение StavView, но без помощи

enter image description here

enter image description here

1 Ответ

0 голосов
/ 10 ноября 2018

tl; dr Снимите ограничение соотношения сторон и добавьте ограничение высоты для UIImageView.

Важно понимать, что UIImageView - это в основном контейнер, содержащий изображениеи его размеры не обязательно отражают размеры изображения (если вы вручную не сделаете их равными).Когда вы выбрали Aspect Fit в качестве * Content Mode UIImageView, размер контейнера не изменился, чтобы соответствовать размеру изображения;этот параметр только изменил способ размещения изображения внутри контейнера.

Как я вижу на скриншоте, высота UIImageView больше его ширины;Кроме того, соотношение сторон фиксируется добавленным вами ограничением.Когда вы помещаете альбомно-ориентированное изображение внутри этого контейнера, последний оставляет белые полосы сверху и снизу изображения (как черные полосы, которые вы видите, когда смотрите широкоэкранное видео на старом мониторе).Измените режим содержимого на Aspect Fill или Scale на Fill, чтобы увидеть фактический размер UIImageView.

. Чтобы исправить это, снимите ограничение соотношения сторон и установите фиксированную высоту для UIImageView илиUIStackView.Если бы я был вами, я бы, вероятно, установил высоту UIStackView равной Safe Area, чтобы, независимо от высоты стека, он не выходил за границы экрана.

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