Middle+
Mire szolgálnak a 'Nyomószilárdsági prioritás' tulajdonságok?
sobes.tech MI
Válasz az MI-től
Határozza meg, hogy mennyire lesz ellenálló egy nézet a többi nézethez képest, ha nem elegendő a szabad hely.
Kompreszió Ellenállás Prioritás tulajdonságok:
- Minden dimenzió (Vízszintes, Függőleges) saját prioritással rendelkezik.
- Értéktartomány: 1 (legkisebb) és 1000 (legmagasabb, UILayoutPriorityRequired).
- Egy magasabb prioritással rendelkező nézet jobban ellenáll a tömörítésnek, mint egy alacsonyabb prioritású nézet.
- A 1000-es prioritás garantálja, hogy a nézet nem lesz tömörítve az intrinzikus tartalom mérete alá semmilyen körülmények között, ha ez lehetséges.
Használat:
- Dinamikus szöveggel rendelkező címke: Ha több UILabel van, amelyek különböző hosszúságú szöveget jelenítenek meg, a prioritások használata segít meghatározni, melyik lesz elsőként tömörítve, ha nem férnek el a képernyőn.
- Gombok: Annak érdekében, hogy a gomb szövege ne vágódjon le, magas prioritást állíthat be a UILabel számára a
Kompreszió Ellenállás Prioritássegítségével. - Összetett elrendezések: Összetett Auto Layout elrendezéseknél a prioritások segítségével lehet megoldani a bizonytalanságokat a hely hiánya esetén.
Példa: Két UILabel vízszintes stack-ben.
let label1 = UILabel()
label1.text = "Rövid szöveg"
label1.backgroundColor = .red
let label2 = UILabel()
label2.text = "Nagyon nagyon hosszú szöveg"
label2.backgroundColor = .blue
let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Kitölti a teret, de tömörítheti a tartalmat
// Alapértelmezés szerint azonos prioritások (általában 750).
// Mindkét címke arányosan tömörül.
// Magas prioritás beállítása a label1-hez
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// A label2 megtartja az alapértelmezett prioritását (750)
// Most, ha nincs elég hely, a label2 jobban tömörül,
// hogy a label1 megtartsa a méretét.
Kapcsolat a Tartalom Ölelése Prioritás (Content Hugging Priority) értékkel:
Content Hugging Priority: Meghatározza, hogy mennyire lesz ellenálló egy nézet a saját tartalmának méretén túl való növelésnek, ha van extra szabad hely.- Magas
Content Hugging Priority= a nézet "öleli" a tartalmát és nem terjeszkedik. - Magas
Kompreszió Ellenállás Prioritás= a nézet ellenáll a tömörítésnek és nem csökken.
Ezek a tulajdonságok együttműködve segítik az Auto Layout-ot a nézetek közötti hely helyes elosztásában.