Middle+
Kokia yra 'Suspaudimo atsparumo prioritetų' savybių paskirtis?
sobes.tech AI
Atsakymas iš AI
Nustato, kaip labai sunku sumažinti vaizdą, palyginti su kitais vaizdais, esant nepakankamai laisvos vietos:
Compression Resistance Priority savybės:
- Kiekviena dimensija (Horizontal, Vertical) turi savo prioritetą.
- Reikšmių diapazonas: nuo 1 (žemiausias) iki 1000 (aukščiausias, UILayoutPriorityRequired).
- Aukštesnio prioriteto vaizdas stipriau priešinsis suspaudimui nei žemesnio prioriteto vaizdas.
- Prioritetas 1000 garantuoja, kad vaizdas nebus sumažintas žemiau savo intrinsic content size, jei tai įmanoma.
Naudojimas:
- Label su dinamišku tekstu: Jei turite kelis UILabel, kurie gali rodyti skirtingo ilgio tekstus, prioritetų naudojimas padeda nustatyti, kuris label bus pirmas sumažintas, jei jie netilps ekrane.
- Mygtukai: Kad tekstas ant mygtuko nebūtų apkirptas, galite nustatyti aukštą
Compression Resistance Prioritysavo UILabel. - Sudėtingi maketai: Sudėtinguose Auto Layout maketuose prioritetai naudojami sprendžiant neaiškumus dėl vietos trūkumo.
Pavyzdys: Du UILabel horizontaliame tinkle.
let label1 = UILabel()
label1.text = "Trumpas tekstas"
label1.backgroundColor = .red
let label2 = UILabel()
label2.text = "Labai, labai, labai ilgas tekstas"
label2.backgroundColor = .blue
let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Užpildo erdvę, bet gali suspausti turinį
// Numatyta, kad abiejų prioritetai yra vienodi (paprastai 750).
// Abu labeliai proporcingai suspaudžiami.
// Nustatome aukštą prioritetą label1
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 lieka su prioritetu 750
// Dabar, jei trūksta vietos, label2 bus suspaustas stipriau,
// kad label1 išlaikytų savo dydį.
Ryšys su Content Hugging Priority:
Content Hugging Prioritynustato, kiek stipriai vaizdas nenorės didėti nuo savo intrinsic content size, kai yra perteklinė vieta.- Aukštas
Content Hugging Priority= vaizdas "apkabina" savo turinį ir neplėsis. - Aukštas
Compression Resistance Priority= vaizdas "priešinasi" suspaudimui ir nesumažės.
Šios dvi savybės veikia kartu, kad Auto Layout teisingai paskirstytų erdvę tarp vaizdų.