iOS 10.3: NSStrikethroughStyleAttributeName не отображается

Это моя функция, написанная в расширении String. Он вернет атрибутированную строку. Он не отображает атрибутированный текст на моем UILabel.

func strikeThroughLine(color: UIColor, textFont: UIFont, textColor: UIColor) -> NSAttributedString {
    let attributeString = NSMutableAttributedString(string: self)
    let range = NSMakeRange(0, attributeString.length)
    attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: range)
    attributeString.addAttribute(NSStrikethroughColorAttributeName, value: color, range: range)
    attributeString.addAttribute(NSFontAttributeName, value: textFont, range: range)
    attributeString.addAttribute(NSForegroundColorAttributeName, value: textColor, range: range)
    return attributeString
}

Я создаю собственный класс UILabel и переопределяю функцию drawText, она работает для атрибута NSStrikethroughStyleAttributeName. Но он не поддерживает многострочный текст в простом string.

override func drawText(in rect: CGRect) {
    guard let attributedText = attributedText else {
        super.drawText(in: rect)
        return
    }

    if #available(iOS 10.3, *) {
        attributedText.draw(in: rect)
    } else {
        super.drawText(in: rect)
    }
}

person Vipul Patel    schedule 30.03.2017    source источник
comment
Его работа в iOS 10.3 для одной строки текстов. Не работает для нескольких строк строки.   -  person Vipul Patel    schedule 05.04.2017
comment
Необходимо добавить NSBaselineOffsetAttributeName attributeString.addAttribute (NSBaselineOffsetAttributeName, значение: 0, диапазон: диапазон). Он также будет работать для нескольких строк.   -  person Piyush    schedule 31.05.2017
comment
Вы можете проверить ответ stackoverflow.com/questions/43070335/   -  person Piyush    schedule 31.05.2017