Sobes.tech
Middle+

Зашто су потребне особине 'Приоритет отпорности на компресију'?

sobes.tech АИ

Одговор од АИ

Određuju koliko će teško biti smanjiti prikaz u poređenju sa drugim prikazima pri nedostatku slobodnog prostora.

Svojstva Compression Resistance Priority:

  • Svaka dimenzija (Horizontalna, Vertikalna) ima svoj prioritet.
  • Opseg vrednosti: 1 (najniži) do 1000 (najviši, UILayoutPriorityRequired).
  • Prikaz sa višim prioritetom će se "opirati" smanjenju jače nego prikaz sa nižim prioritetom.
  • Prioritet 1000 garantuje da prikaz neće biti smanjen ispod svog intrinsic content size u bilo kojim okolnostima, ako je moguće.

Upotreba:

  • Label sa dinamičkim tekstom: Ako imate više UILabel-ova koji mogu prikazivati tekst različite dužine, korišćenje prioriteta pomaže odrediti koji će se label prvi smanjiti ako se ne stanu na ekran.
  • Dugmad: Da tekst na dugmetu ne bude isečen, možete postaviti visok prioritet Compression Resistance Priority za njegov UILabel.
  • Složeni rasporedi: U složenim Auto Layout rasporedima, prioriteti se koriste za rešavanje nejasnoća pri nedostatku prostora.

Primer: Dva UILabel-a u horizontalnom stogu.

let label1 = UILabel()
label1.text = "Kratak tekst"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Veoma, veoma, veoma dugačak tekst"
label2.backgroundColor = .blue

let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Popunjava prostor, ali može da smanjuje sadržaj

// Po defaultu, prioriteti su jednaki (obično 750).
// Oba labela će se proporcionalno smanjivati.

// Postavljamo visok prioritet za label1
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 ostaje sa prioritetom 750

// Sada, pri nedostatku prostora, label2 će se smanjiti jače,
// kako bi label1 sačuvao svoj veličinu.

Veza sa Content Hugging Priority:

  • Content Hugging Priority: Određuje koliko će teško biti da prikaz poveća svoju veličinu od svog intrinsic content size pri višku slobodnog prostora.
  • Visok Content Hugging Priority = prikaz "grli" svoj sadržaj i ne širi se.
  • Visok Compression Resistance Priority = prikaz "opire" se smanjenju i ne smanjuje se.

Ova dva svojstva rade zajedno da pomognu Auto Layout-u da pravilno rasporedi prostor između prikaza.