枚举NSMutableAttributedString - 不是UIColor对象?

时间:2016-12-01 11:04:46

标签: ios swift swift3 nsattributedstring nsmutableattributedstring

它发生了(可能)由于迁移到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后,条件不会触发。

0 个答案:

没有答案