NSMutableAttributedString的删除线粗细

时间:2016-11-10 06:49:18

标签: objective-c nsattributedstring

我正在使用objective-c中的删除线注释一个可变的属性字符串。使用以下代码。

[MAString addAttribute:NSStrikethroughStyleAttributeName
                     value:[NSNumber numberWithInt:1]
                     range:NSMakeRange(0, [text length])]

我不清楚value参数控制什么以及它可能的值是什么。它控制厚度吗?如果是这样,可能的值是什么?

2 个答案:

答案 0 :(得分:3)

如何查看documentation

  

此值指示文本是否有一条直线,并且对应于NSUnderlineStyle中描述的常量之一。此属性的默认值为styleNone。

然后:

https://developer.apple.com/reference/uikit/nsunderlinestyle

答案 1 :(得分:0)

此答案适用于懒惰的程序员

extension String {

/// Apply strike font on text
    func strikeThrough(lineThickness:Int,lineColor:UIColor) -> NSAttributedString {
  let attributeString = NSMutableAttributedString(string: self)
    attributeString.addAttribute(
    NSAttributedString.Key.strikethroughStyle,
    value: lineThickness,
    range: NSRange(location: 0, length: attributeString.length))
    attributeString.addAttribute(
    NSAttributedString.Key.strikethroughColor,
    value: lineColor,
    range: NSRange(location: 0, length: attributeString.length))
    return attributeString
   }
 }

用法

yourlabel.attributedText = "your text".strikeThrough(lineThickness: 3, lineColor: .red)