UILabel attributedText mit mehreren line-break-Modi
Ich eine Anforderung haben, zeigen ein UILabel mit text, zwei verschiedene Arten (verschiedene Farben, Teile des Textes Fett formatiert). Dieses Problem ist leicht genug, mithilfe der attributedText-Eigenschaft.
Mein problem ist, dass der text kann oder kann nicht länger sein, als das, was ich kann passen in mein label. Bei der Verwendung von plain-text-alles funktioniert so, wie ich es mir vorstelle. Der text ist Wort umgebrochen, passen Sie die Anzahl der Zeilen in dem Etikett und der Schwanz wird abgeschnitten, wenn der text länger ist, als angezeigt werden können, die in der label.
Wenn ich mit dem Schalter attributedText ich bin nur in der Lage zu wählen, zwischen Schwanz abschneiden und einen Zeilenumbruch. Wenn ich will, den Schwanz abgeschnitten, das Etikett gibt nur eine einzige Zeile mit dem abgeschnittenen Schwanz (obwohl, könnte es passen 10 Zeilen). Wenn ich über die Option Zeilenumbruch dann wird der Schwanz nicht abgeschnitten ist, aber die Zeilen, die passt nicht in die label werden einfach nicht angezeigt.
Meine Inhalte string enthält keine Zeilenumbrüche, es ist einfach eine lange Schnur.
- Haben Sie sich überlegt brennen ein Fehler von Apple?
- Sie waren in der Lage, diese zu lösen?
- siehe - stackoverflow.com/a/23554815/294884 und auch pikachu's Antwort unter hier
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verpasste ich den abschneiden wenn ich linespacing, aber alles, was ich hatte, war, fügen Sie linebreakmode zu paragraphstyle
Sie nur Weg habe ich in der Lage, diese zu arbeiten, ist nicht von einer Absatz-Formatvorlage.
versuchen Sie dies:
[_text drawWithRect:_textRect
Optionen:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleline
Attribute:Attribute
context:nil];
Können Sie ein
NSParagraphStyle
mit jedemlineBreakMode
Sie bitte, und bringen Sie es an der Zeichenkette mitNSParagraphStyleAttributeName
. Ich weiß nicht, ob alle der Werte derNSLineBreakMode
unterstützt werden, aber ich habe keinen Grund zu glauben, Sie sind nicht.