2013-12-07 1 views
6

Если у вас есть представление без ограничений на него, и у этого представления есть подпункт с левым, правым, верхним и нижним ограничениями одинакового размера, если размер подзапроса увеличен, возможно, что размер супервизора будет автоматически увеличиваться для размещения эти ограничения?Могут ли subviews автоматически изменять размер своего супервизора с помощью автоматической компоновки?

Спасибо.

ответ

12

Да, вы можете это сделать, и это можно сделать без какого-либо кода или подкласса. Например, если у вас есть метка, встроенная в представление (с номером 0FLines = 0), и у нее есть ограничения для всех сторон супервизора, а также ограничение ширины, метка и ее супервизор будут расширяться вертикально, если вы поместите большую строку в метку. Надзор должен по-прежнему нуждаться в некоторых ограничениях, например, в верхней и левой части его супервизора, но без ограничений по размеру.

+0

Это было невероятно полезно спасибо. Я мог бы пояснить, что волшебный соус был ограничением «Нижнее пространство для Superview» от UILabel до Superview (что в моем случае было обычным UIView). – ObjectNameDisplay

1

Это можно сделать, если супервизор - это пользовательский подкласс UIView. Вы можете переопределить intrinsicContentSize, чтобы вернуть размер, связанный с размером вашего супер-представления. Затем, когда размер подзаголовка изменяется, он может аннулировать собственный размер содержимого. Обычно я делаю это в части layoutSubviews надстройки.

Смежные вопросы