gpt4 book ai didi

ios - NSFontAttributeName 未应用于 NSAttributedString

转载 作者:可可西里 更新时间:2023-11-01 00:23:01 24 4
gpt4 key购买 nike

我目前正在使用此 answer 提供的扩展程序在 UITextView 中将 html 转换为字符串。一切正常,但由于某些奇怪的原因,NSFontAttributeName 在此过程中未应用于字符串。我在这里做错了什么吗? (或者我应该在获取属性化的 html 解析字符串后应用 NSAttributedString 吗?如果是这样,是否可以将属性应用于 NSAttributeString ?)。

附言。使用 html2String 时字体大小不会改变,但 UITextView 不再识别 html 中的链接

extension String {

var html2AttributedString: NSAttributedString? {
guard
let data = dataUsingEncoding(NSUTF8StringEncoding)
else { return nil }
do {
return try NSAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding, NSFontAttributeName : UIFont.systemFontOfSize(17.0)], documentAttributes: nil)
} catch let error as NSError {
print(error.localizedDescription)
return nil
}
}
var html2String: String {
return html2AttributedString?.string ?? ""
}
}
cell.desc.attributedText = apiData[currentIndex].description!.html2AttributedString //Font attribute not recognized
cell.desc.text = apiData[currentIndex].description!.html2String //Font recognized by links no longer recognized

最佳答案

我不确定为什么(可能是因为有一个范围)但是如果你先创建一个 NSMutableAttributedString 然后添加 UIFont 属性,它就可以工作:

extension String {

var html2AttributedString: NSMutableAttributedString? {
guard
let data = dataUsingEncoding(NSUTF8StringEncoding)
else { return nil }
do {
let attrStr = try NSMutableAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil)
attrStr.addAttributes([NSFontAttributeName: UIFont.systemFontOfSize(17.0)], range: NSRange(location: 0, length: attrStr.length))
return attrStr
} catch let error as NSError {
print(error.localizedDescription)
return nil
}
}
var html2String: String {
return html2AttributedString?.string ?? ""
}
}

关于ios - NSFontAttributeName 未应用于 NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36427442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com