Ich versuche, Ellipse Text auf mehrere Zeilen innerhalb eines Rechtecks zu zeichnen.Mehrzeiliger Text wird nicht ellipsentiert
Für NSLineBreakByTruncatingTail
, die Dokumentation wird
Die Linie angezeigt wird, so dass der Anfang in dem Behälter paßt und der fehlende Text am Ende der Leitung wird durch einen Auslassungs Glyphe angezeigt. Obwohl dieser Modus für mehrzeiligen Text funktioniert, wird er häufiger für Einzeilentext verwendet.
aber mit diesem Modus erhalte ich nur eine einzige Zeile:
jedoch mit NSLineBreakByWordWrapping
, bekomme ich nicht ein Auslassungszeichen für überlangen Text:
Beide Bilder verwenden den gleichen Code unten (roter Hintergrund ist das Textzeichnungsrechteck) und natürlich die gleiche Rechteckgröße, also sollten 2 Zeilen d sein Endlich fit.
NSMutableParagraphStyle* paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineBreakMode = <<see above>>;
paragraphStyle.alignment = NSTextAlignmentNatural;
NSDictionary* drawingAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"HelveticaNeue" size:36],
NSFontAttributeName,
paragraphStyle,
NSParagraphStyleAttributeName,
nil];
const CGRect rect = CGRectMake(...);
[@"I do not get ellipsized in any way" drawInRect:rect withAttributes:drawingAttributes];
Gibt es eine Möglichkeit mit mehrzeiligen Rendering zu kombinieren ellipsizing, wie die Dokumentation sagt? Mit einem UILabel müsste ich nur die Anzahl der Zeilen auf etwas anderes als 1 setzen, aber was ist mit Text-Rendering über Code?
Ich glaube Multiline bedeutet ... eine Bildlaufleiste. Und Sie wollen 2 Zeilen Textfeld. So können Sie zwei TextField erstellen, ein normales anderes abgeschnittenes Tail. –
Es geht nicht um eine UI-Steuerung, sondern um Text-Rendering über Code! – AndiDog
Ja, aber der Text wird in einigen UI gerendert werden. Und die EINZIGE UI wird auf beide Arten angezeigt. Wenn Sie zwei UIs haben, dann kann dies getan werden. oder wahrscheinlich müssen Sie eine benutzerdefinierte UI mit dieser Anforderung erstellen. –