Eu preciso pesquisar algumas strings e definir alguns atributos antes de mesclar as strings, portanto, ter NSStrings -> Concatenate them -> Make NSAttributedString não é uma opção. Existe alguma maneira de concatenar attributeString para outro attributeString?
ios
nsattributedstring
Imanou Petit
fonte
fonte
Respostas:
Eu recomendo que você use uma única string atribuível mutável sugerida pelo @Linuxios, e aqui está outro exemplo disso:
No entanto, apenas para obter todas as opções disponíveis, você também pode criar uma única sequência mutável atribuída, feita a partir de uma NSString formatada contendo as seqüências de entrada já reunidas. Você pode usar
addAttributes: range:
para adicionar os atributos após o fato aos intervalos que contêm as cadeias de entrada. Eu recomendo o caminho antigo embora.fonte
Se você estiver usando o Swift, poderá sobrecarregar o
+
operador para concatená-los da mesma maneira que concatenar seqüências normais:Agora você pode concatená-los apenas adicionando-os:
fonte
return NSAttributedString(attributedString: result)
Helpers
orExtensions
e colocaria essa função em um arquivo chamadoNSAttributedString+Concatenate.swift
.Swift 3: basta criar um NSMutableAttributedString e acrescentar as strings atribuídas a eles.
atualização swift5:
fonte
Tente o seguinte:
Onde
astring1
eastring2
estãoNSAttributedString
s.fonte
[[aString1 mutableCopy] appendAttributedString: aString2]
.NSMutableAttributedString* aString3 = [aString1 mutableCopy]; [aString3 appendAttributedString: aString2];
.result
comoNSMutableAttributedString
. não é o que o autor deseja ver.stringByAppendingString
- este método vai ser bom2020 SWIFT 5.1:
Você pode adicionar 2
NSMutableAttributedString
da seguinte maneira:Outra maneira funciona com
NSMutableAttributedString
e comNSAttributedString
ambos:Outra maneira é ....
e:
Você pode fazer isso com a seguinte extensão:
fonte
NSAttrStr1.append(NSAttrStr2)
Se você estiver usando Cocoapods, uma alternativa para as duas respostas acima que permitem evitar a mutabilidade em seu próprio código é usar a excelente categoria NSAttributedString + CCLFormat em
NSAttributedString
s, que permite escrever algo como:É claro que ele apenas usa
NSMutableAttributedString
debaixo das cobertas.Ele também tem a vantagem extra de ser uma função de formatação completa - para que ele possa fazer muito mais do que anexar seqüências de caracteres.
fonte
fonte
Você pode tentar SwiftyFormat Ele usa a seguinte sintaxe
fonte