Ответ
contentCompressionResistancePriority определяет приоритет, с которым представление (view) сопротивляется сжатию своего размера ниже его intrinsicContentSize.
Зачем это нужно? В Auto Layout при нехватке пространства система должна решить, какое из представлений сжать. Свойство задает «силу сопротивления» сжатию по горизонтальной (.horizontal) или вертикальной (.vertical) оси.
Практический пример: Два лейбла (label1, label2) расположены в одной строке, и их суммарная ширина превышает ширину супервью.
// label1 важнее, его текст должен быть виден полностью.
label1.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
// label2 может быть обрезан или сжат.
label2.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
В этой ситуации система сожмет (обрежет) label2, так как его приоритет сопротивления сжатию ниже.
Ключевые моменты:
- Приоритеты: Задаются через
UILayoutPriorityв диапазоне от 1 до 1000. Стандартные значения:.required(1000),.defaultHigh(750),.defaultLow(250). - Значение по умолчанию:
.defaultHigh(750) для всех осей. - Антагонист:
contentHuggingPriority— приоритет сопротивления РАСТЯЖЕНИЮ сверхintrinsicContentSize.