【问题标题】:NSMutableAttributedString with font size and HTML tag properties [duplicate]具有字体大小和 HTML 标记属性的 NSMutableAttributedString [重复]
【发布时间】:2017-01-12 14:54:05
【问题描述】:

我在使用 NSMutableAttributedString 读取 HTML 字符串并增加其字体大小时遇到​​问题。

输入 HTML:<b>Lorem ipsum</b> dolor sit <i>amet</i></h3>consectetuer</h3> adipiscing elit

NSMutableAttributedString转换如下:

let htmlData = input.data(using: .utf8)!

let htmlAttrs = [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:String.Encoding.utf8.rawValue] as [String : Any]

do{
    let new = try NSMutableAttributedString(data: htmlData, options: htmlAttrs, documentAttributes: nil)

    let tillEnd  = NSRange(location: 0, length: new.length)
    let attr:UIFont   = UIFont.systemFont(ofSize: 25)

    //new.addAttribute(NSFontAttributeName, value: attr, range: tillEnd)

    textView.attributedText = new
}

它能正确读取 HTML 标签并给出输出

.

但是如果我想增加字体大小并取消注释addAttribute,字体大小会增加但不会呈现HTML。

我可以将属性字符串同时包含字体大小和 HTML 呈现吗?

【问题讨论】:

  • 这是正常行为。斜体和粗体在 UIFont 内(NSFontAttributeName 也是如此)。您需要迭代您的 NSAttributedString 的 NSFontAttributeName 这是一个好的开始:stackoverflow.com/a/41413014/1801544(马特回答,但不是创建像格鲁吉亚这样的新字体,而是使用与以前相同的字体)。
  • 谢谢,马特的回答有效。

标签: swift nsmutableattributedstring


【解决方案1】:

您可以使用 span 标签的 style 属性来包含具有 font-size 属性的 CSS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-31
    • 2014-11-11
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2015-04-25
    相关资源
    最近更新 更多