Что такое сопротивление сжатию содержимого и обнимание содержимого UIView?

Что такое сопротивление сжатию содержимого и обнимание содержимого UIView? Как они соотносятся с внутренним размером содержимого представления?

Ответ 1

Взято из objc.io отлично статья расширенного автоматического макетa > a > :

Внутренний размер содержимого

Внутренний размер содержимого - это размер, который вид предпочитает иметь для определенного содержимого, которое он отображает. Например, UILabel имеет предпочтительную высоту на основе шрифта и предпочтительную ширину на основе шрифта и текста, который он отображает. UIProgressView имеет только предпочтительную высоту, основанную на ее оформлении, но не имеет предпочтительной ширины. Простой UIView не имеет ни предпочтительной ширины, ни предпочтительной высоты.

Сопротивление сжатию и обжатие содержимого

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

За кулисами внутренний размер содержимого и этот приоритет значения переводятся в ограничения. Для ярлыка с внутренним размер содержимого {100, 30}, горизонтальное/вертикальное сжатие приоритет сопротивления 750 и обнимание по горизонтали/вертикали приоритет 250, будут созданы четыре ограничения:

H:[label(<[email protected])] 
H:[label(>[email protected])]
V:[label(<[email protected])]
V:[label(>[email protected])]

Если вы не знакомы с языком визуального формата для ограничения, используемые выше, вы можете прочитать об этом в Яблоки документация. Имея в виду, что эти дополнительные ограничения неявно помогает понять поведение Auto Layouts и лучше понять сообщения об ошибках.

Вот еще один вопрос StackOverflow, который учитывает разницу между сопротивлением сжатия контента и обниманием содержимого: Cocoa Автоопределение: обход содержимого и степень сопротивления сжатию содержимого