gpt4 book ai didi

html - 将字体属性添加到 HTML 渲染的 UILabel swift

转载 作者:行者123 更新时间:2023-11-30 12:23:33 25 4
gpt4 key购买 nike

我有一些 HTML 内容,我想在我的 native UILabel 中呈现,但除此之外,我还必须向该 UILabel 添加自定义字体。我正在使用 NSAttributedString 来执行此操作,并使用以下代码在我的 UILabel 中呈现 HTML 内容。

 func htmlAttributedString() -> NSAttributedString? {
guard let data = self.data(using: .utf16, allowLossyConversion: false) else {
return nil
}
guard let html = try? NSMutableAttributedString(
data: data,
options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil) else { return nil }


let attributes = [
NSForegroundColorAttributeName: UIColor.lightGray,
NSFontAttributeName : UIFont.systemFont(ofSize: 12)
]
html.setAttributes(attributes, range: NSRange(0..<html.length))

return html
}

var str = "Here is the <bold>string</bold> that i want to be bold.
messageLabel.attributedText = str.htmlAttributedString()

这里的问题是,当我在 HTML 呈现的属性字符串上应用字体属性时。然后所有像粗体这样的 HTML 格式都会丢失。

有没有一种方法可以让我在 HTML 渲染的属性字符串上应用一些选定的字体

最佳答案

根据您的要求替换字体。

func htmlAttriButedText(str : String) -> NSAttributedString{
let attrStr = try! NSMutableAttributedString(
data: str.data(using: String.Encoding.utf8, allowLossyConversion: true)!,
options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil)
attrStr.addAttribute(NSForegroundColorAttributeName, value: lightTextColor, range: NSMakeRange(0, attrStr.length))
attrStr.addAttribute(NSFontAttributeName, value: UIFont.boldSystemFont(ofSize: 13), range: NSMakeRange(0, attrStr.length))
return attrStr
}

关于html - 将字体属性添加到 HTML 渲染的 UILabel swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44499730/

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