2016-09-07 5 views
3

Я создаю приложение iOS с формой, и я использую stackviews. Это пример того, чего я хочу достичь: Example stackviewСтруктура просмотра элементов управления в процентах в iOS swift

Текстовое поле и кнопка являются частью горизонтального представления стека. Мне нужен способ присвоить им процентную ширину. Например, текстовое поле будет занимать 80% общей ширины стека, а кнопка займет 20%.

Свойства выравнивания и распределения Stackview равны 'fill'.

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

+0

Чтобы уточнить, вы используете горизонтальное представление стека здесь, в основном статическом макете, т. Е. Вы всегда показываете эти два элемента. –

ответ

1

Вы ищете установку UIStackViewDistributionFillProportionally.

Это будет использовать пропорцию между внутренними размерами содержимого представления как пропорцию между их фактическими размерами. Таким образом, для 80% до 20% сделайте один вид 80 шириной и один вид 20 шириной (в их intrinsicContentSize переопределениях), и они будут изменены в пропорции от 80 до 20.

+0

Иногда это помогает, но не гарантирует фиксированную ширину. Если содержимое расширяется в текстовом поле, кнопка уменьшается. –

+0

@RujootaShah Если это происходит, то это звучит так, будто вы не переопределяете внутренний размер содержимого правильно. – matt