Sobes.tech
Middle+

Wozu dienen die Eigenschaften der 'Priorität der Druckfestigkeit'?

sobes.tech KI

Antwort von AI

Bestimmt, wie widerstandsfähig eine Ansicht im Vergleich zu anderen Ansichten bei unzureichendem freiem Raum ist.

Eigenschaften Kompressionswiderstand Priorität:

  • Jede Dimension (Horizontal, Vertikal) hat ihre eigene Priorität.
  • Wertebereich: 1 (niedrigste) bis 1000 (höchste, UILayoutPriorityRequired).
  • Eine Ansicht mit höherer Priorität widersteht der Kompression stärker als eine mit niedrigerer Priorität.
  • Priorität 1000 stellt sicher, dass die Ansicht bei allen Umständen nicht unter ihre intrinsische Inhaltsgröße komprimiert wird, wenn dies möglich ist.

Verwendung:

  • Label mit dynamischem Text: Wenn Sie mehrere UILabels haben, die Text unterschiedlicher Länge anzeigen können, hilft die Verwendung von Prioritäten zu bestimmen, welches Label zuerst komprimiert wird, wenn sie nicht auf den Bildschirm passen.
  • Schaltflächen: Um zu verhindern, dass der Text auf einer Schaltfläche abgeschnitten wird, können Sie eine hohe Priorität für ihr UILabel festlegen, indem Sie Kompressionswiderstand Priorität verwenden.
  • Komplexe Layouts: In komplexen Auto Layout-Layouts werden Prioritäten verwendet, um Unklarheiten bei Platzmangel zu lösen.

Beispiel: Zwei UILabels in einem horizontalen Stack.

let label1 = UILabel()
label1.text = "Kurzer Text"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Sehr sehr sehr langer Text"
label2.backgroundColor = .blue

let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .horizontal
stackView.distribution = .fill // Füllt den Raum, kann aber den Inhalt komprimieren

// Standardmäßig sind die Prioritäten gleich (normalerweise 750).
// Beide Labels werden proportional komprimiert.

// Hohe Priorität für label1 setzen
label1.setContentCompressionResistancePriority(.required, for: .horizontal) // 1000
// label2 behält seine Priorität (750)

// Bei Platzmangel wird label2 stärker komprimiert,
// damit label1 seine Größe behält.

Beziehung zu Content Hugging Priority (Inhaltsumarmungspriorität):

  • Content Hugging Priority: Bestimmt, wie widerstandsfähig eine Ansicht ist, ihre Größe über den intrinsischen Inhalt hinaus zu erhöhen, wenn zusätzlicher freier Raum vorhanden ist.
  • Hohe Content Hugging Priority = die Ansicht "umarmt" ihren Inhalt und dehnt sich nicht aus.
  • Hohe Compression Resistance Priority = die Ansicht widersteht der Kompression und wird nicht verkleinert.

Diese beiden Eigenschaften arbeiten zusammen, um Auto Layout bei der richtigen Verteilung des Raums zwischen den Ansichten zu unterstützen.