Заставить представление занять как можно больше места внутри UIStackView - PullRequest
0 голосов
/ 24 мая 2018

Я создаю часть пользовательского интерфейса моего приложения с помощью Swift, и проблема, с которой я сталкиваюсь, заключается в том, что у меня есть UIStackView с тремя вложенными представлениями: 2 UILabels и UIImageView.Вот мой первый код

let switchview = UISwitch()
let nodelableview = UILabel()
nodelableview.textAlignment = NSTextAlignment.right
nodelableview.numberOfLines = 0
nodelableview.text = nodes[i].type + " " + nodes[i].node_name
let statLabel = UILabel()
statLabel.textAlignment = NSTextAlignment.left
statLabel.text = nodes[i].stat
let stack = UIStackView()
stack.axis = .horizontal
stack.spacing = 16
stack.addArrangedSubview(statLabel)
stack.addArrangedSubview(nodelableview)
stack.addArrangedSubview(switchview)
cell.nodesView.addArrangedSubview(stack)

, проблема с этим кодом состоит в том, что когда nodelabelview имеет длинный текст, UIStackView не расширяется, чтобы освободить место для 2 или более строк.Поэтому я установил выравнивание на .center, и вот результат enter image description here

Осталось пустое место, но первый UILabel использует его даром.Как я могу заставить второй UILabel использовать доступные пробелы?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Установкой, которая будет отдавать приоритет вашей второй метке (та, которая имеет неограниченное количество строк), будет стек просмотра, установленный на распределение " Fill пропорцио нально " (что означает, что представления имеют размер в зависимости от ихвнутренний размер и приоритеты объятия / сопротивления

enter image description here

в сочетании с горизонтальным « Приоритет сопротивления сжатию содержимого » 1000 («требуется») для левой метки и переключателя (что означает «не сжимать»)

enter image description here

, который разрешен к этому:

enter image description here

0 голосов
/ 24 мая 2018

Возможно, вам понадобится установить горизонтальные contentHuggingPriority и contentCompressionResistance для каждой метки / переключателя на что-то отличное от других, гарантируя, что тот, который вы хотите расширить, чтобы заполнить оставшееся доступное пространство, имеет наименьшее значение объятия.

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