它发生了(可能)由于迁移到swift 3 - 之前它正在运行。
这是字符串:
<![CDATA[<h2><font color="#aa2c2c">some colored text</font></h2><br />
some non-attributed text..]]>
我的想法是根据配色方案将非属性文本绘制为黑色或白色。
这样做(亲爱的Android,你自己完成了所有这些),我列举了属性:
text.enumerateAttributes(in: NSRange(0..<text.length), options: []) { (attributes, range, _) -> Void in
for (attribute, object) in attributes {
if let textColor = object as? UIColor{
NSLog("textColor = \(textColor) red = \(Utils.redColor)")
if (!textColor.isEqual(Utils.greyColor) && !textColor.isEqual(Utils.redColor)){
text.setAttributes(textAttributes , range: range)
}
}
}
因此,我在日志中获得的是:textColor = kCGColorSpaceModelRGB 0 0 0 1 red = Optional(UIExtendedSRGBColorSpace 0.666667 0.172549 0.172549 1)
我需要将这个textColor
与特殊颜色进行比较,如果它们都不是 - 我会因为颜色方案而将其绘制为黑色或白色
现在,作为UIColor实例的Utils.redColor和Utils.greyColor都不会触发,尽管它们都存在于属性文本中。
它在Swift 2中有效,但在镜像到Swift 3后,条件不会触发。