Middle+
Na co jsou vlastnosti 'Priorita odolnosti proti stlačení'?
sobes.tech AI
Odpověď od AI
Určuje, jak mocně bude pohled odolávat zmenšení ve srovnání s ostatními pohledy při nedostatku volného prostoru.
Vlastnosti Priorita Odporu vůči Kompresi:
- Každý rozměr (Vodorovný, Svislý) má svou vlastní prioritu.
- Rozsah hodnot: 1 (nejnižší) do 1000 (nejvyšší, UILayoutPriorityRequired).
- Pohled s vyšší prioritou bude odolávat stlačení více než pohled s nižší prioritou.
- Priorita 1000 zaručuje, že pohled nebude stlačen pod jeho vnitřní velikost obsahu za žádných okolností, pokud je to možné.
Použití:
- Štítek s dynamickým textem: Pokud máte několik UILabel, které mohou zobrazovat texty různých délek, použití priorit pomáhá určit, který bude první stlačen, pokud se nevejdou na obrazovku.
- Tlačítka: Aby text na tlačítku nebyl oříznut, můžete nastavit vysokou prioritu pro jeho UILabel pomocí
Priorita Odporu vůči Kompresi. - Složitější rozvržení: V složitých rozvrženích Auto Layout jsou priority používány k řešení nejasností při nedostatku prostoru.
Příklad: Dva UILabel v horizontálním stacku.
let label1 = UILabel()
label1.text = "Krátký text"
label1.backgroundColor = .red
let label2 = UILabel()
label2.text = "Velmi velmi dlouhý text"
label2.backgroundColor = .blue
let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Vyplní prostor, ale může stlačit obsah
// Výchozí jsou stejné priority (obvykle 750).
// Oba štítky se budou proporcionálně stlačovat.
// Nastavte vysokou prioritu pro label1
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 si zachová svou výchozí prioritu (750)
// Nyní, při nedostatku prostoru, bude label2 více stlačen,
// aby si label1 zachoval svou velikost.
Vztah k Prioritě obejmutí obsahu (Content Hugging Priority):
Content Hugging Priority: Určuje, jak moc bude pohled neochotný zvětšit se nad svou vnitřní velikost obsahu, když je k dispozici nadbytečný volný prostor.- Vysoká
Content Hugging Priority= pohled "objímá" svůj obsah a neexpanduje se. - Vysoká
Priorita Odporu vůči Kompresi= pohled odolává stlačení a nezmenšuje se.
Tyto dvě vlastnosti spolupracují, aby pomohly Auto Layout správně rozdělit prostor mezi pohledy.