Мне нужно найти несколько строк и установить некоторые атрибуты до слияния строк, поэтому наличие NSStrings -> Объединить их -> Сделать NSAttributedString не вариант, есть ли способ объединить attribuString с другой attribuString?
ios
nsattributedstring
Imanou Petit
источник
источник
Ответы:
Я бы порекомендовал вам использовать одну изменяемую атрибутивную строку, предложенную @Linuxios, и вот еще один пример этого:
Однако просто для того, чтобы получить все опции, вы также можете создать одну изменяемую атрибутивную строку, сделанную из отформатированной строки NSString, содержащей входные строки, уже собранные вместе. Затем вы можете использовать
addAttributes: range:
для добавления атрибутов после факта в диапазоны, содержащие входные строки. Я рекомендую первый способ, хотя.источник
Если вы используете Swift, вы можете просто перегрузить
+
оператор, чтобы объединить их так же, как и обычные строки:Теперь вы можете объединить их, просто добавив:
источник
return NSAttributedString(attributedString: result)
Helpers
orExtensions
и поместил бы эту функцию в файл с именемNSAttributedString+Concatenate.swift
.Swift 3: просто создайте NSMutableAttributedString и добавьте к ним приписанные строки.
swift5 upd:
источник
Попробуй это:
Где
astring1
иastring2
естьNSAttributedString
с.источник
[[aString1 mutableCopy] appendAttributedString: aString2]
.NSMutableAttributedString* aString3 = [aString1 mutableCopy]; [aString3 appendAttributedString: aString2];
.result
какNSMutableAttributedString
. это не то, что автор хочет видеть.stringByAppendingString
- этот метод будет хорош2020 | SWIFT 5.1:
Вы можете добавить 2
NSMutableAttributedString
следующим образом:Другой способ работает с
NSMutableAttributedString
иNSAttributedString
оба:Другой способ это ....
и:
Вы можете сделать это со следующим расширением:
источник
NSAttrStr1.append(NSAttrStr2)
Если вы используете Cocoapods, альтернатива обоим вышеприведенным ответам, позволяющая избежать изменчивости в вашем собственном коде, заключается в использовании превосходной категории NSAttributedString + CCLFormat для
NSAttributedString
s, которая позволяет написать что-то вроде:Это, конечно, он просто использует
NSMutableAttributedString
под одеялом.Он также обладает дополнительным преимуществом, будучи полноценной функцией форматирования, так что он может сделать гораздо больше, чем просто добавлять строки вместе.
источник
источник
Вы можете попробовать SwiftyFormat. Он использует следующий синтаксис
источник