我遇到了一个令人沮丧的问题。我想要一个标签来显示一个文本字符串,其中部分字符串具有不同的背景颜色。
此代码有效:
let s = NSMutableAttributedString(string: "test me bar", attributes: [:])
s.addAttribute(NSBackgroundColorAttributeName, value: UIColor.yellowColor(),
range: NSMakeRange(4, 2))
s.addAttribute(NSBackgroundColorAttributeName, value: UIColor.blueColor(),
range: NSMakeRange(8, 2))
self.detailDescriptionLabel.attributedText = s
但是,如果我删除了其中一个调用addAttribute
(不管是哪一个),以便我准确指定字符串的一个范围以具有背景颜色属性,那么字符串中的任何位置都不会显示背景颜色。
我在 iOS 8.1 上,这发生在模拟器和我的 iPhone 6 上。我在我的代码中发现了这个问题,并在一个空项目中仅使用上面的代码片段重现了它。
有任何想法吗?我在这里拉头发。这是问题的简化版本,但对于我的项目来说,能够拥有只有一个区域具有背景颜色的字符串非常重要。
编辑如果我将其中一种背景颜色设置为UIColor.clearColor()
,那么一切都按预期工作。我可能正在查看 UIKit 中的错误吗?