如何处理 NSAttributedString 颜色中的十六进制值

发布时间:2022-10-07 / 作者:清心寡欲

本文介绍了如何处理 NSAttributedString 颜色中的十六进制值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 NSAttributedString 从示例 HTML 字符串中获取颜色属性。 这是我尝试创建它的方式:

func toHTMLAttributedString() -> NSAttributedString? {
    if let data = self.data(using: .unicode),
       let nsAttrString = try? NSAttributedString(data: data,
                                                  options: [.documentType: NSAttributedString.DocumentType.html],
                                                  documentAttributes: nil) {
            return nsAttrString
        }
        return nil
    }

这是我正在尝试的字符串:

<p>My <b> cat </b> has <span style=\"color:#i00008B\">blue</span> eyes.</p>

然而,“蓝色”这个词总是黑色的。 我发现这是因为它是一个十六进制值。 如何将十六进制值转换为 NSAttributedString 知道如何使用的值。

推荐方案

您需要删除字母i

"color:#00008B\

然后是 Red 的正确 ex

let str = """
<p>My <b> cat </b> has <span style=\"color:#ff0000\">blue</span> eyes.</p>
"""

在此处输入图像描述

[英文标题]How to handle hex values in NSAttributedString color


声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。