swift解析html数据类型,ios-Swift:以标签或textVi显示HTML数据

ios-Swift:以标签或textVi显示HTML数据

我有一些HTML数据,其中包含标题,段落,图像和列表标签。

有没有一种方法可以在一个UITextView或UILabel中显示此数据?

12个解决方案

146 votes

对于Swift 4:

extension String {

var htmlToAttributedString: NSAttributedString? {

guard let data = data(using: .utf8) else { return NSAttributedString() }

do {

return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)

} catch {

return NSAttributedString()

}

}

var htmlToString: String {

return htmlToAttributedString?.string ?? ""

}

}

然后,每当您要将HTML文本放入UITextView时,请使用:

textView.attributedText = htmlText.htmlToAttributedString

Roger Carvalho answered 2019-11-15T18:40:49Z

34 votes

这是Swift 3版本:

private func getHtmlLabel(text: String) -> UILabel {

let label = UILabel()

label.numberOfLines = 0

label.lineBreakMode = .byWordWrapping

label.attributedString = stringFromHtml(string: text)

return label

}

private func stringFromHtml(string: String) -> NSAttributedString? {

do {

let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)

if let d = data {

let str = try NSAttributedString(data: d,

options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],

documentAttributes: nil)

return str

}

} catch {

}

return nil

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值