Stellen Sie UILabel Zeilenabstand ein
Wie kann ich ändern, den Abstand zwischen den Zeilen (Zeilenabstand) in einem mehrzeiligen UILabel
?
InformationsquelleAutor der Frage Matrix | 2010-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: Offenbar
NSAttributedString
wird es tun, auf iOS 6 und höher. Statt mit einerNSString
zum einstellen der label-text, erstellen Sie eineNSAttributedString
Attribute setzen, dann legen Sie es als.attributedText
auf dem Etikett. Der code, den Sie wollen, werden so etwas wie dieses:NSAttributedString alten attributedStringWithString hat die gleiche Sache, aber jetzt dass ist veraltet.
Aus historischen Gründen, hier ist meine ursprüngliche Antwort:
Kurze Antwort: können Sie nicht. Ändern Sie den Abstand zwischen den Zeilen des Textes, müssen Sie Unterklasse
UILabel
und Rollen Sie Ihre eigenendrawTextInRect
erstellen Sie mehrere labels, oder verwenden Sie eine andere schriftart (vielleicht eine bearbeitet, die für eine bestimmte Linie Höhe, finden Sie unter Phillipe ' s Antwort).Lange Antwort: In der print-und online-Welt, der Raum zwischen den Textzeilen ist bekannt als "führende" (reimt sich mit 'überschrift', und kommt von der Blei-Metall verwendet, die vor Jahrzehnten). Führende ist ein nur-lese-Eigenschaft von
UIFont
die veraltet in 4.0 und ersetzt durchlineHeight
. Soweit ich weiß, gibt es keinen Weg, um erstellen Sie eine schriftart mit einem bestimmten Satz von Parametern, wielineHeight
; Sie können die system-Schriftarten und benutzerdefinierte schriftart, die Sie hinzufügen, kann aber nicht zwicken Sie einmal installiert.Es gibt keine parameter "Abstand" in
UILabel
.Ich bin nicht besonders glücklich mit
UILabel
's Verhalten so wie es ist, so schlage ich vor, schreiben Sie Ihre eigene Unterklasse oder mit einem 3rd-party-Bibliothek. Zu machen, dass das Verhalten unabhängig von der schriftart-Auswahl und die meisten wiederverwendbare Lösung.Ich wünschte, es war mehr Flexibilität in
UILabel
und ich würde gerne als falsch erwiesen!InformationsquelleAutor der Antwort AndrewS
Ab ios 6 können Sie eine zugeschrieben string in der UILabel:
InformationsquelleAutor der Antwort iosMentalist
Können Sie Steuern, den Zeilenabstand in den storyboard:
doppelte Frage
InformationsquelleAutor der Antwort Mike S
Meine Lösung war der patch auf die font-Datei selbst und kann der Zeilenhöhe auf jeden Fall.
http://mbauman.net/geek/2009/03/15/minor-truetype-font-editing-on-a-mac/
Musste ich ändern "lineGap', 'Aufsteiger', 'descender' in 'hhea' - block (wie im blog-Beispiel).
InformationsquelleAutor der Antwort Philippe
Von Interface Builder:
Programmatisch:
SWift 4
Mit label-Erweiterung
Rufen Sie nun die Erweiterung Funktion
Oder mit label-Instanz (Einfach kopieren & diesen code ausführen, um zu sehen, Ergebnis)
Swift 3
InformationsquelleAutor der Antwort Krunal
Dieser Kerl erzeugt eine Klasse zur get-Zeile-Höhe (ohne Verwendung von CoreText, als MTLabel Bibliothek) : https://github.com/LemonCake/MSLabel
InformationsquelleAutor der Antwort Grsmto
Beste was ich gefunden habe ist: https://github.com/mattt/TTTAttributedLabel
Es ist ein UILabel-Unterklasse, so können Sie einfach legen Sie es in, und dann zum ändern der Zeilenhöhe:
InformationsquelleAutor der Antwort lms
Habe ich gefunden, 3rd-Party-Bibliotheken, Wie diese hier:
https://github.com/Tuszy/MTLabel
Werden, ist die einfachste Lösung.
InformationsquelleAutor der Antwort Derek Bredensteiner
Hier einige swift-code für Sie, um den Zeilenabstand programmgesteuert
InformationsquelleAutor der Antwort ullstrm
Natürlich, Mike ' s Antwort funktioniert nicht, wenn Sie übergeben Sie die Zeichenfolge programmgesteuert. In diesem Fall müssen Sie passieren eine zugeschrieben string und ändern Sie den Stil.
InformationsquelleAutor der Antwort Ricardo Mutti