我要输出像替换属性串入NSMutableAttributedString在斯威夫特3
我的名字是普拉莫德 Tapaniya
从下面的JSON。
{
"text": "My name is B0$ Tapaniya.",
"formats": {
"formatId": [
"B0$"
],
"formatValue": [
"Pramod"
]
}
}
我已经试过下面的代码,但由于我用属性字符串替换了字符串而导致编译时错误。我用SwiftyJson来处理json。
let boldAttributes = [NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont.boldSystemFont(ofSize: 13)]
let simpleAttributes = [NSForegroundColorAttributeName: UIColor.lightGray, NSFontAttributeName: UIFont.systemFont(ofSize: 13)]
let strComm = NSMutableAttributedString(string: dict["text"].stringValue, attributes: simpleAttributes)
let attributedStr = NSMutableAttributedString()
attributedStr.append(strComm)
let arrFormatId = dict["formats"]["formatId"]
let arrFormatValue = dict["formats"]["formatValue"]
for var i in 0..<arrFormatId.count{
let strBold = NSMutableAttributedString(string: arrFormatValue[i].stringValue, attributes: boldAttributes)
attributedStr.mutableString.replaceOccurrences(of: arrFormatId[i].stringValue, with: strBold, options: .caseInsensitive, range: NSRange(location: 0, length: attributedStr.length)) //Cannot convert value of type 'NSMutableAttributedString' to expected argument type 'String'
}
return attributedStr
“Pramod”粗体。你只需要替换字符串。 –
更新了答案。 –