Ich muss einige Zeichenfolgen durchsuchen und einige Attribute festlegen, bevor die Zeichenfolgen zusammengeführt werden. NSStrings -> Verketten - - NSAttributedString erstellen ist also keine Option. Gibt es eine Möglichkeit, AttributedString mit einem anderen AttributedString zu verketten?
ios
nsattributedstring
Imanou Petit
quelle
quelle
Antworten:
Ich würde empfehlen, dass Sie eine einzelne veränderbare zugeordnete Zeichenfolge verwenden, die von @Linuxios vorgeschlagen wurde, und hier ist ein weiteres Beispiel dafür:
Um jedoch alle Optionen verfügbar zu machen, können Sie auch eine einzelne veränderbare zugeordnete Zeichenfolge erstellen, die aus einem formatierten NSString besteht, der die bereits zusammengestellten Eingabezeichenfolgen enthält. Sie können dann
addAttributes: range:
die Attribute nachträglich zu den Bereichen hinzufügen, die die Eingabezeichenfolgen enthalten. Ich empfehle jedoch den früheren Weg.quelle
Wenn Sie Swift verwenden, können Sie den
+
Operator einfach überladen , damit Sie ihn auf dieselbe Weise verketten können, wie Sie normale Zeichenfolgen verketten:Jetzt können Sie sie verketten, indem Sie sie hinzufügen:
quelle
return NSAttributedString(attributedString: result)
Helpers
oder erstellenExtensions
und diese Funktion in eine Datei mit dem Namen einfügenNSAttributedString+Concatenate.swift
.Swift 3: Erstellen Sie einfach einen NSMutableAttributedString und hängen Sie die zugewiesenen Zeichenfolgen an diese an.
swift5 upd:
quelle
Versuche dies:
Wo
astring1
undastring2
sindNSAttributedString
s.quelle
[[aString1 mutableCopy] appendAttributedString: aString2]
.NSMutableAttributedString* aString3 = [aString1 mutableCopy]; [aString3 appendAttributedString: aString2];
.result
alsNSMutableAttributedString
. es ist nicht das, was der Autor sehen will.stringByAppendingString
- Diese Methode wird gut sein2020 | SWIFT 5.1:
Sie können 2
NSMutableAttributedString
auf folgende Weise hinzufügen :Ein anderer Weg funktioniert mit
NSMutableAttributedString
undNSAttributedString
beidem:Ein anderer Weg ist ....
und:
Sie können dies mit der folgenden Erweiterung tun:
quelle
NSAttrStr1.append(NSAttrStr2)
Wenn Sie Cocoapods verwenden, besteht eine Alternative zu den beiden oben genannten Antworten, mit denen Sie die Veränderlichkeit Ihres eigenen Codes vermeiden können, darin, die ausgezeichnete Kategorie NSAttributedString + CCLFormat für
NSAttributedString
s zu verwenden, mit der Sie Folgendes schreiben können:Es benutzt es natürlich nur
NSMutableAttributedString
unter der Decke verwendet.Es hat auch den zusätzlichen Vorteil, dass es eine vollwertige Formatierungsfunktion ist - es kann also viel mehr als nur Zeichenfolgen anhängen.
quelle
quelle
Sie können SwiftyFormat ausprobieren . Es verwendet die folgende Syntax
quelle