Mehrzeiliges Etikett in UIStackView
Beim anziehen der multiline-label (mit Zeilenumbruch setzen, um Zeilenumbruch) in einen Stapel anzeigen, die Beschriftung verliert in der linebreak und zeigt den label-text in einer Zeile statt.
Warum ist das passiert und wie kann man das bewahren multiline-label innerhalb eines Stapels anzeigen?
InformationsquelleAutor der Frage Boon | 2015-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
UILabel
innerhalb einerUIView
(Editor -> Embed-In -> Ansicht)UILabel
zu denUIView
(zum Beispiel Leerzeichen, oben Platz, und führende Leerzeichen zu superview Einschränkungen)Den
UIStackView
dehnen sich dieUIView
zu passen, und dieUIView
wird beschränken dieUILabel
auf mehrere Zeilen.InformationsquelleAutor der Antwort Andy
multiLine
es sei denn, Sie geben ihm eine Feste Breite. Wenn wir fix seine Breite und dann brechen Sie mehrzeilig, wenn diese Breite erreicht ist, wie gezeigt:Wenn wir nicht geben eine Feste Breite, um die stack-Ansicht, dann werden die Dinge mehrdeutig. Wie lange wird der übersicht wachsen mit dem label, wenn das label-Wert-Dynamik)?
Hoffe das kann das Problem lösen.
InformationsquelleAutor der Antwort Irfan
Einer horizontalen stack-Ansicht, die ein UIlabel als einer der Ansichten im interface builder Erstens setzen die UIlabel Anzahl der Reihen auf 0. Damit sollte das label mehr als 1 Zeile. Diese zunächst keine Arbeit für mich, wenn die Stapel-Ansicht hatte alignment=füllen. Damit es funktioniert, legen Sie einfach die stack-view alignment = center. Das label kann nun erweitern, um mehrere Zeilen innerhalb der stackview.
Den Apple-Dokumentation sagt
Hinweis: das Wort außer hier. Bei der Füllung verwendet wird, die horizontale stackview NICHT die Größe sich vertikal über die Untersichten angeordnet Größen.
InformationsquelleAutor der Antwort pbm
Nur legen Sie die Anzahl der Zeilen auf 0 in Attribut-Inspektor für das label. Es wird für Sie arbeiten.
InformationsquelleAutor der Antwort technerd
Folgende ist ein Spielplatz Umsetzung der multi-line-label mit einem Zeilenumbruch innerhalb eines
UIStackView
. Es erfordert keine Einbettung derUILabel
im inneren nichts und wurde getestet mit Xcode 9.2 und Swift 4. Hoffe, es ist hilfreich.InformationsquelleAutor der Antwort JaredH
Hinzufügen
UIStackView
Eigenschaften,Anstatt Aufkleber auf der Innenseite
UIView
ist nicht erforderlich.Wenn Sie mitUITableViewCell
bitte, neu laden die Daten auf rotation.InformationsquelleAutor der Antwort Sagar Daundkar
iOS 9+
Call
[textLabel sizeToFit]
nach der Einstellung der UILabel text.sizeToFit wird re-layout die multiline-label mit preferredMaxWidth. Das Etikett wird die Größe der stackView, die Größe der Zelle. Keine weiteren Einschränkungen, außer die Belegung der stack-Ansicht, um den Inhalt anzeigen erforderlich sind.
InformationsquelleAutor der Antwort aumansoftware
In meinem Fall, ich folgte die vorherigen Kommentaren, aber mein text war noch immer abgeschnitten, um eine einzige Zeile, aber nur in der Landschaft. Stellt sich heraus, fand ich einen unsichtbaren
\0
null-Charakter in den label-text, welcher der übeltäter war. Es muss eingeführt wurden, neben der em-dash symbol, das ich eingefügt hatte. Um zu sehen, ob dies auch geschieht, in Ihrem Fall, verwenden Sie die View-Debugger wählen Sie das Etikett und überprüfen Sie seine text.InformationsquelleAutor der Antwort Joey
Einstellung preferredMaxLayoutWidth der UILabel für mich gearbeitet
InformationsquelleAutor der Antwort Pablo Martinez
Magic trick für mich war, war ein
widthAnchor
zu denUIStackView
.Einstellung
leadingAnchor
undtrailingAnchor
wird nicht funktionieren, aber die EinstellungcenterXAnchor
undwidthAnchor
aus dem UILabel richtig angezeigt.InformationsquelleAutor der Antwort Skoua