Определяют, насколько неохотно вью будет уменьшаться по сравнению с другими вью при недостаточном свободном пространстве.
Свойства Compression Resistance Priority:
- Каждый Dimension (Horizontal, Vertical) имеет свой приоритет.
- Диапазон значений: 1 (самый низкий) до 1000 (самый высокий, UILayoutPriorityRequired).
- Вью с более высоким приоритетом будет "сопротивляться" сжатию сильнее, чем вью с более низким приоритетом.
- Приоритет 1000 гарантирует, что вью не будет сжато ниже егоintrinsic content size при любых обстоятельствах, если это возможно.
Использование:
- Label с динамическим текстом: Если у вас есть несколько UILabel, которые могут отображать текст разной длины, использование приоритетов помогает определить, какой лейбл будет сжат первым, если они не поместятся на экране.
- Кнопки: Чтобы текст на кнопке не обрезался, можно установить высокий приоритет
Compression Resistance Priority для её UILabel.
- Сложные макеты: В сложных Auto Layout макетах приоритеты используются для разрешения неоднозначностей при нехватке пространства.
Пример: Два UILabel в горизонтальном стеке.
swift
Связь с Content Hugging Priority:
Content Hugging Priority: Определяет, насколько неохотно вью будет увеличиваться от своего intrinsic content size при избытке свободного пространства.
- Высокий
Content Hugging Priority = вью "обнимает" свой контент и не расширяется.
- Высокий
Compression Resistance Priority = вью "сопротивляется" сжатию и не уменьшается.
Эти два свойства работают вместе, чтобы помочь Auto Layout правильно распределить пространство между вью.