Ich habe ein paar Etiketten, die sich nie gegenseitig berühren sollten. Siehe das Bild unten (die gelben Buchstaben ignorieren):Auto schrumpfen UILabel, wenn andere UILabel wächst
Dies sind 4 Etikett insgesamt 2 Spielernamen und 2 Partituren. Der Name des Players ersetzt den ursprünglichen Player-Label-Text. So könnte "Player 1:" ein beliebiger Text in beliebiger Breite sein. Die Beschriftungen befinden sich in einer Ansicht in einer UIStackView. Jeweils 2 Labels (also Spieler Name und Punktzahl) hat seine eigene View. In diesem Beispiel gibt es 4 Labels in 2 Ansichten in 1 UIStackView. Das ist, was ich will:
Die Punktzahl Etiketten werden nie automatisch schrumpfen, sie behalten immer ihre ursprüngliche Höhe und würde automatisch in der Breite erhöhen, wenn der Inhalt (Score) wachsen wird. Aus diesem Grund habe ich die Content-Umgehungspriorität auf größere Werte als das Spielernamen-Label festgelegt. Da ich nicht möchte, dass die Scoremarkierung automatisch schrumpft, setze ich die Widerstandskorrektur für die Inhaltskomprimierung auf einen größeren Wert als den des Spielernamensschilds.
Ich setze den Spielernamen Beschriftungstext auf eine automatische Schrumpfwertskala auf 0,5. Doch wenn ein großer Benutzernamen dargestellt wird, scheint es, über die Partitur Label wie folgt aus (habe ich die ursprüngliche blaue „0“ jetzt gelb):
Der Benutzername sollte automatisch schrumpfen, und sollte nie die berühren Punktzahl Label. Wie kann ich das machen?
Ich hoffe, Sie können helfen!
Edit: Ich möchte ein Leerzeichen zwischen den Spielernamen und Spieler Score Label hinzufügen. Um dies zu tun, möchte ich ein nachstehendes Leerzeichen vom Spielernamen zu den Spielern hinzufügen. Wenn Sie diese Einschränkung jedoch hinzufügen, wird auch die gesamte Punktzahl berücksichtigt. Ich möchte natürlich aufhören, wenn es das Notenlabel berührt. Bild 1 zeigt hier die Größe des Spielernamens, wenn das nachgestellte Leerzeichen zur Notenbeschriftung hinzugefügt wurde. Es nimmt den Score-Label Swell auf. :
Ich möchte nicht fixiert Constraints verwenden, da die Probleme verursachen würde es auf einem iPad oder iPhone SE läuft. Vielen Dank.
Das 'UIStackView' darf die Inhaltskomprimierung oder das Umarmen von Eigenschaften nicht verwenden. Es verwaltet auch den Stapel Ansichten selbst (ohne sich wirklich um das automatische Layout zu kümmern). Ich denke, es wäre besser, wenn Sie die Beschriftungen direkt in die Ansicht einfügen und alles ohne Auto-Layout bearbeiten. – keithbhunter
Ja, es ist in Auto-Layout, in einem UIStackview gestapelt. Ich habe keine Ahnung, wie ich diese besondere Sache machen soll. Auto-Layout wird die Größe von Labels nicht automatisch ändern, abhängig von anderen UILabels – Petravd1994
Ich würde nicht glauben, dass UIStackView keine Inhaltsumwandlung von Labels darin unterstützt. Ich werde auf andere Antworten warten, bevor ich meinen ganzen Code ändere – Petravd1994