Настройка высоты UIView внутри UIStackView Control
Я использую UIStackView в iOS 9 SDK. Высота стека - 44 точки. У меня есть UILabel и UIView внутри StackView, как показано ниже:
![введите описание изображения здесь]()
Теперь я хочу сделать зеленый вид намного меньше, чем 44.. как 20. Как я могу это сделать?
UPDATE: без UIStackView я получаю ограничения на разрыв:
[GT.BubbleView:0x14536610] (Names: '|':UITableViewCellContentView:0x14536fd0 )>",
"<NSLayoutConstraint:0x146b7300 GT.BubbleView:0x14536610.trailing == UITableViewCellContentView:0x14536fd0.trailingMargin>",
"<NSLayoutConstraint:0x146c4000 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14536fd0(286)]>"
)
Ответы
Ответ 1
Если вы пытаетесь достичь квадрата 20x20, как показано ниже:
![введите описание изображения здесь]()
Затем вам нужно добавить еще один UIView в свой зеленый вид. Сделайте размер UIView 20x20pt. Затем измените фон малого представления на зеленый и увеличьте фон обзора, чтобы очистить.
При этом это решение не требует просмотра стека и, возможно, слишком усложняет ваш интерфейс. Я бы порекомендовал просто использовать автозапуск вместо этого.
Stackviews наиболее полезны, если
- вы хотите компенсировать изменение ориентации устройства,
- хотите собрать много вещей друг на друга,
- хотите создать очень сложный макет со многими элементами, но
шаблоны, которые вы можете повторить, или
- просто хочу иметь возможность удалить элемент или добавить элемент с самой корректировкой размера.
Этот список не является исчерпывающим, но должен дать вам представление о том, когда и почему вы должны использовать представление стека.
Вне прототипа ячейки
Это поведение тривиально. Вы можете просто задать ограничения для своего вида:
'
И затем установите ограничения на просмотр стека:
![введите описание изображения здесь]()
Надеюсь, это поможет, ура!
Ответ 2
-
Сначала вам нужно добавить UIStackView
в cell
![введите описание изображения здесь]()
-
Вам нужно добавить ограничения на UIStackView
![введите описание изображения здесь]()
-
Отрегулируйте UIStackView
![введите описание изображения здесь]()
-
Перетащите & отпустите UILabel
в свой UIStackView
![введите описание изображения здесь]()
-
Затем Drag & Drop UIView
в ваш UIStackView
![введите описание изображения здесь]()
-
Добавьте green-UIView
как subview в pink UIView
![введите описание изображения здесь]()
-
Теперь вы можете добавить пару ограничений на green-UIView
![введите описание изображения здесь]()
-
Теперь вы можете запускать приложение на симуляторе или устройстве
![введите описание изображения здесь]()
Обратите внимание на, что я не добавил никаких ограничений для UILabel
.
Ответ 3
Проблема ограничения прерывания можно легко устранить, установив приоритет ограничений ширины и высоты до 800 или выше.