Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift NSAttributedString无法从DTCoreText解析CTForegroundColor属性_Swift_Nsattributedstring_Dtcoretext - Fatal编程技术网

Swift NSAttributedString无法从DTCoreText解析CTForegroundColor属性

Swift NSAttributedString无法从DTCoreText解析CTForegroundColor属性,swift,nsattributedstring,dtcoretext,Swift,Nsattributedstring,Dtcoretext,我正在使用DTCoreText创建HTML属性字符串。DTCoreText返回的属性字符串有一个名为CTForegroundColor的属性,该属性包含文本颜色信息。当我在UI上显示文本时,它与属性中提到的颜色不一致。如果我使用苹果公司的标准方法,那么效果很好 代码段: 一,。使用DTCoreText时 输入字符串: 输出属性字符串: 立即赚取!{ NSColor=kCGColorSpaceModelRGB 0.921569 0.113725 0.113725 1; NSFont=字体系列:\H

我正在使用DTCoreText创建HTML属性字符串。DTCoreText返回的属性字符串有一个名为CTForegroundColor的属性,该属性包含文本颜色信息。当我在UI上显示文本时,它与属性中提到的颜色不一致。如果我使用苹果公司的标准方法,那么效果很好

代码段:

一,。使用DTCoreText时

输入字符串:

输出属性字符串:

立即赚取!{ NSColor=kCGColorSpaceModelRGB 0.921569 0.113725 0.113725 1; NSFont=字体系列:\Helvetica\;字体重量:正常;字体样式:正常;字体大小:22.00pt; NSKern=0; NSParagraphStyle=对齐4,行距0,段落间距0,段落间距0,段落间距0,首缩进0,尾缩进0,第一行首缩进0,线宽27/0,线宽倍数0,换行模式0,制表符\n,默认TabInterval 36,块\n,列表\n,基线写入方向0,连字号因子0,拧紧位置号,标题级别0; NSStrokeColor=kCGColorSpaceModelRGB 0.921569 0.113725 0.113725 1; NSStrokeWidth=0; }


因为我在使用苹果的标准方法时遇到了太多的崩溃,所以我想转到DTCoreText。

将以下代码添加到options参数有效

let options = [DTUseiOS6Attributes : true] as [String : Any]
原因是将上述属性设置为true时,仅使用iOS 6.0以后版本可用的NSForegroundColorAttributeName,而不是默认的kCTForegroundColorAttributeName

"<style>body{font-family: \'Helvetica\'; font-size:22.000000px;}</style><font color = \"#EB1D1D\">Earn Instantly!</font>"
return try NSAttributedString(data: encodedData,
                                              options: [.documentType: NSAttributedString.DocumentType.html,
                                                        .characterEncoding: String.Encoding.utf8.rawValue],
                                              documentAttributes: nil)
let options = [DTUseiOS6Attributes : true] as [String : Any]