Как реализовать несколько надписей по горизонтали, которые могут расти по вертикали, если в Auto-Layout недостаточно места - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно решение для отображения тегов (каждый в виде UILabel) в UITableViewCell, который должен быть выровнен по горизонтали, но растущим по вертикали, если горизонтального пространства недостаточно. Он должен работать с Auto-Layout и автоматически соответствовать ширине текущей ширины ячейки.

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

enter image description here

Я уже использовал вертикальный StackView, который содержит метку и несколько горизонтальных StackView, заполненных метками-метками. Для этого мне нужно взять максимальную ширину и вычислить текущую ширину, чтобы решить, что необходим новый горизонтальный Tag-StackView.

Это работает, но не подходит, если меняется ориентация. Я не ищу решение, которое наблюдает за изменением ориентации и обновляет ячейку впоследствии. Я ищу решение Auto-Layout и надеюсь, что у кого-нибудь есть хорошее решение для этой проблемы. Заранее спасибо.

1 Ответ

0 голосов
/ 09 мая 2019

Избавьтесь от стековых представлений и просто настройте их с помощью простого простого автоматического макета. Закрепите ярлыки каждой строки последовательно по горизонтали, установив одинаковую высоту, чтобы при вертикальном росте все они делали это. Установите сопротивление сжатия надписей по-разному, чтобы не возникало двусмысленности относительно того, что должно происходить, когда ширина ячейки слишком мала для текста надписи. Теперь прикрепите все последовательно по вертикали к представлению содержимого ячейки, чтобы размер ячейки изменился, когда метки сделают это.

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