NSBackgroundColorAttributeName似乎不适用于iOS 10.3

时间:2017-03-28 10:50:09

标签: swift uilabel nsattributedstring

我们在应用中显示一个标签,其中包含属性文字和一些突出显示颜色。为此,我们使用以下代码:

let paddedLineAttributed = NSMutableAttributedString(string: paddedLine, attributes: [NSFontAttributeName : newFont, NSParagraphStyleAttributeName : paragraphStyle, NSBackgroundColorAttributeName : color])

但在将我们的一个测试设备升级到iOS 10.3后,标签的指定背景颜色不再生效。相反,它使用透明的背景颜色使标签不可见,因为我们使用的颜色与父视图的颜色相同。

我怀疑NSBackgroundColorAttributeName是罪魁祸首,但官方API参考保持不变 - https://developer.apple.com/reference/appkit/nsbackgroundcolorattributename

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

复制自@schystz评论:

添加NSBaselineOffsetAttributeName: 0可以解决问题。

let paddedLineAttributed = NSMutableAttributedString(string: paddedLine, attributes: [NSFontAttributeName : newFont, NSParagraphStyleAttributeName : paragraphStyle, NSBackgroundColorAttributeName : color, NSBaselineOffsetAttributeName: 0])