Sobes.tech
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ás segí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.