我使用此代码将属性字符串添加到标签:
let attrString = NSMutableAttributedString(string: text)
// add some attributes
myLabel.attributedText = attrString
现在是否可以仅更改属性字符串myLabel的文本并保留属性?
答案 0 :(得分:4)
通过它的mutableString
属性
示例:
let astrMessage = NSMutableAttributedString(string: "Hello World")
//set some attributes
astrMessage.addAttribute(NSAttributedStringKey.foregroundColor,
value: UIColor.blue,
range: NSRange(location: 0, length: 5))
astrMessage.addAttribute(NSAttributedStringKey.foregroundColor,
value: UIColor.red,
range: NSRange(location: 6, length: 5))
//update
astrMessage.mutableString.setString("World Welcome")
注意:只有第一个属性将应用于更新的文本。
答案 1 :(得分:0)
获取您的标签属性
let linkAttributes = NSMutableAttributedString(attributedString: label.attributedText)
你可以给添加属性。
linkAttributes.addAttribute(NSLinkAttributeName, value: "username://marcelofabri_", range: linkRange)
let linkAttributes: [String : Any] = [
NSForegroundColorAttributeName: UIColor.green,
NSUnderlineColorAttributeName: UIColor.lightGray,
NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue]
将归属文字添加到您的标签
myLabel.attributedText = linkAttributes
答案 2 :(得分:0)
更改属性字符串的可变字符串,并将NSMutableAttributedString重新分配给您的标签。
attrString.mutableString.setString("newText")
myLabel.attributedText = attrString
<强> P.S 强> 如果您无权访问属性字符串变量,请从标签中获取。
let myAttrString = myLabel.attributedText as? NSMutableAttributedString
if let attrString = myAttrString {
attrString.mutableString.setString("newText")
myLabel.attributedText = attrString
}