WKInterfaceLabel属性字符串在宽度上失败

时间:2017-06-30 05:13:53

标签: swift watchkit nsattributedstring wkinterfacetable

我正在使用属性字符串来删除WKInterfaceLabel中的文字。这可以直到文本长度超过手表宽度的位置,因此您会看到...实际上在iOS上发生同样的事情;但是,您可以剪辑解决问题的内容。在手表上,剪裁不可用。

当整体宽度超出屏幕界限时,如何删除可见文本?以下是代码:

let attributedString = NSMutableAttributedString(string: self.fileTextArray[i])
attributedString.addAttribute(NSStrikethroughStyleAttributeName, value: NSNumber(value: NSUnderlineStyle.styleThick.rawValue), range: NSMakeRange(0, attributedString.length))
attributedString.addAttribute(NSStrikethroughColorAttributeName, value: UIColor.red, range: NSMakeRange(0, attributedString.length))

row.translatedTextLabel.setAttributedText(attributedString)

1 个答案:

答案 0 :(得分:0)

这似乎是一个错误,但有一个解决方法。修复方法是使用以下代码行:

attributedString.addAttribute(NSBaselineOffsetAttributeName, value: 0, range: NSMakeRange(0, attributedString.length))

这在Watch OS和iOS中都解决了这个问题。

此处提供更多详细信息:iOS 10.3: NSStrikethroughStyleAttributeName is not rendered if applied to a sub range of NSMutableAttributedString