iOS 10.3: NSStrikethroughStyleAttributeName no se representa

Es mi function escrita en la extensión String. Devolverá una cadena atribuida. Su no atribuye el text atribuido a mi 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 } 

Hago la class UILabel personalizada y drawText function drawText , funciona para el atributo NSStrikethroughStyleAttributeName . Pero no es compatible con texts de varias líneas en una string simple.

 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) } }