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ätverwenden. - 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.