Sobes.tech
Middle+

Milleks on 'Survest vastupidavuse prioriteedi' omadused?

sobes.tech AI

Vastus AI-lt

Määrab, kui raske on vaate suurendamine teiste vaadete suhtes, kui vaba ruumi on vähe:

Compression Resistance Priority omadused:

  • Igal mõõtmel (Horisontaalne, Vertikaalne) on oma prioriteet.
  • Väärtuste vahemik: 1 (madalaim) kuni 1000 (kõrgeim, UILayoutPriorityRequired).
  • Kõrgema prioriteediga vaade vastupanuvad tugevamalt kokkusurumisele kui madalama prioriteediga vaade.
  • Prioriteet 1000 tagab, et vaadet ei vähendata alla selle sisulise sisu suurust, kui see on võimalik.

Kasutamine:

  • Label dünaamilise tekstiga: Kui teil on mitu UILabeli, mis võivad kuvada erineva pikkusega tekste, aitab prioriteetide kasutamine määrata, milline label vähendatakse esimesena, kui ruumi ei piisa.
  • Nupud: Teksti lõikamise vältimiseks nupul, saate määrata kõrge Compression Resistance Priority oma UILabelile.
  • ** keerulised paigutused:** Keerulistes Auto Layouti paigutustes kasutatakse prioriteete ruumi puudumise lahendamiseks.

Näide: Kaks UILabeli horisontaalses virnas.

let label1 = UILabel()
label1.text = "Lühike tekst"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Väga, väga, väga pikk tekst"
label2.backgroundColor = .blue

let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Täidab ruumi, kuid võib sisu suruda

// Mõlemad on vaikimisi sama prioriteediga (tavaliselt 750).
// Mõlemad labelid surutakse proportsionaalselt.

// Seadistame kõrge prioriteedi label1 jaoks
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 jääb 750-ga

// Nüüd, kui ruumi on vähe, surutakse label2 tugevamini,
// et label1 säilitaks oma suuruse.

Seos Content Hugging Priority-ga:

  • Content Hugging Priority määrab, kui väga vaade on vastupidav oma sisemise sisu suurendamisele, kui ruumi on üle.
  • Kõrge Content Hugging Priority = vaade "embab" oma sisu ega laiene.
  • Kõrge Compression Resistance Priority = vaade "vastupanu" kokkusurumisele ja ei vähene.

Need kaks omadust töötavad koos, et Auto Layout õigesti jaotaks ruumi vaadete vahel.