Necesito buscar algunas cadenas y establecer algunos atributos antes de fusionar las cadenas, por lo que tener NSStrings -> Concatenarlos -> Hacer NSAttributedString no es una opción, ¿hay alguna forma de concatenar atribuString a otra atribuString?
ios
nsattributedstring
Imanou Petit
fuente
fuente
Respuestas:
Le recomiendo que use una sola cadena atribuida mutable que sugirió @Linuxios, y aquí hay otro ejemplo de eso:
Sin embargo, solo por el hecho de obtener todas las opciones, también puede crear una sola cadena atribuida mutable, hecha de una NSString formateada que contenga las cadenas de entrada ya juntas. Luego puede usar
addAttributes: range:
para agregar los atributos después del hecho a los rangos que contienen las cadenas de entrada. Sin embargo, recomiendo la forma anterior.fuente
Si está utilizando Swift, puede sobrecargar el
+
operador para que pueda concatenarlos de la misma manera que concatena cadenas normales:Ahora puede concatenarlos simplemente agregándolos:
fuente
return NSAttributedString(attributedString: result)
Helpers
oExtensions
y pondría esta función en un archivo llamadoNSAttributedString+Concatenate.swift
.Swift 3: simplemente cree una NSMutableAttributedString y añádales las cadenas atribuidas.
swift5 upd:
fuente
Prueba esto:
Donde
astring1
yastring2
sonNSAttributedString
s.fuente
[[aString1 mutableCopy] appendAttributedString: aString2]
.NSMutableAttributedString* aString3 = [aString1 mutableCopy]; [aString3 appendAttributedString: aString2];
.result
comoNSMutableAttributedString
. No es lo que el autor quiere ver.stringByAppendingString
- este método será bueno2020 | SWIFT 5.1:
Puede agregar 2
NSMutableAttributedString
de la siguiente manera:Otra forma funciona con
NSMutableAttributedString
yNSAttributedString
ambos:Otra forma es ...
y:
Puede hacer esto con la siguiente extensión:
fuente
NSAttrStr1.append(NSAttrStr2)
Si está utilizando Cocoapods, una alternativa a ambas respuestas anteriores que le permiten evitar la mutabilidad en su propio código es usar la excelente categoría NSAttributedString + CCLFormat en
NSAttributedString
s que le permite escribir algo como:Por supuesto, solo se usa
NSMutableAttributedString
debajo de las sábanas.También tiene la ventaja adicional de ser una función de formato completa, por lo que puede hacer mucho más que agregar cadenas juntas.
fuente
fuente
Puedes probar SwiftyFormat. Utiliza la siguiente sintaxis
fuente