如何从NSAttributedString swift中删除属性?

时间:2015-11-19 14:07:02

标签: ios swift nsattributedstring setattribute nsmutableattributedstring

我在按钮attributesTitle

中添加了一些属性
 let attr = NSMutableAttributedString(string: currTitle)

 attr.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attr.length))
 attr.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSMakeRange(0,  attr.length))

 currButton?.setAttributedTitle(attr, forState: UIControlState.Normal)

如何在按钮点击后从中删除NSStrikethroughStyleAttributeName?

3 个答案:

答案 0 :(得分:7)

使用removeAttribute方法:

attr.removeAttribute(NSStrikethroughStyleAttributeName, range: NSMakeRange(0, attr.length))

答案 1 :(得分:4)

很简单。您可以使用NSMutableAttributedString class

中的此方法
func removeAttribute(_ name: String,
               range range: NSRange)

在你的情况下

attr.removeAttribute(NSStrikethroughStyleAttributeName , range:NSMakeRange(0, attr.length))

答案 2 :(得分:0)

在Swift 5中

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "YourStringHere")
attributeString.removeAttribute(NSAttributedString.Key.strikethroughStyle, range: NSMakeRange(0, attributeString.length))
yourLblHere.attributedText = attributeString