2016-05-13 26 views
7

Ich verwende ContextLabel, um @, # und URLs zu analysieren. Dies ist die beste Lösung, die ich gefunden habe, weil sie richtig dimensioniert ist und die Leistung nicht beeinträchtigt. Es analysiert zunächst String am Eingang und wandelt ihn dann in NSAttributedString um und weist danach attributedText die Eigenschaft UILabel zu. Alles funktioniert wie erwartet, mit Ausnahme Abschneiden Schwanz - es ist sehr falsch (siehe Bild unten)NSAttributedString Tail Trunkierung in UILabel

enter image description here

Wo soll ich anfangen zu graben - ist es falsch Attribute zugeschrieben String? Oder Etikett Layout Problem? Vielen Dank!

+0

Sind Sie hart Codierung der Breite dieses Label? – Feroz

Antwort

14

hatte ich dieses Problem und reparierte sie durch eine NSParagraphStyle Hinzufügen der gewünschten Zeilenumbruch-Modus festgelegt wird:

//assuming myString is an NSMutableAttributedString 
    let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.lineBreakMode = .byTruncatingTail 

    let range = NSRange(location: 0, length: myString.mutableString.length) 
    myString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: range) 

Word wrap for NSMutableAttributedString für weitere Referenz.

0

Das folgende funktioniert auch unabhängig von der Verwendung von AttributedText oder normalem Text.
Achten Sie darauf, die unterhalb der Linie nach dem Einstellen der AttributedText und Schriftart der Beschriftung hinzuzufügen:

label.lineBreakMode = .byTruncatingTail