在 IB 中为 UILabel 设置 HTML 文本

Posted

技术标签:

【中文标题】在 IB 中为 UILabel 设置 HTML 文本【英文标题】:Setting HTML text for UILabel in IB 【发布时间】:2017-11-06 10:58:51 【问题描述】:

从后端获取 html 文本,现在我手动删除和格式化标签,并为 <li> 标签添加项目符号。

如果有任何其他<p> 标签或<br> 标签即将到来,那么我将删除它。检查RTLabel,无法在界面生成器中使用它。

现在尝试TTTAttributedLabel,我可以在 IB 中使用它,但它无法识别 HTML 标签。

还有其他可用的轻量级库吗?

【问题讨论】:

您可以尝试使用 Webview 而不是 UILabel...然后您不必手动删除标签...只是一个建议。 其实它是一个动态的 UITableView,如果我使用 UIWebView 那么内存问题我猜会出现,这就是我使用 UILabel 的原因。 No No...内存问题不会出现...您可以使用 webview。 你看到这个笔记github.com/codepath/objc_ios_guides/wiki/…了吗?您可以使用 NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType 将 HTML 转换为 NSAttributedString,但这可能会导致大型 html 页面的应用程序冻结。据我所知,它不能从后台线程调用。 ***.com/questions/17204967/…查看此链接 【参考方案1】:

您可以使用RTLabel 代替UILabel 来显示HTML 文本。请查看以下链接了解更多详情:-

https://github.com/honcheng/RTLabel

【讨论】:

它是一个动态的 uitableview,我无法以编程方式设置 uilabel 文本。这就是为什么我无法使用这个 RTLabel 库。 忽略以上评论。您可以计算 RTLabel 对象的高度和单元格的指定高度。例如:- RTLabel *lbl = [[RTLabel alloc]initWithFrame:frame]; [lbl setText:@"<br> alloc </br>"]; [lbl sizeToFit]; float fltLBLHeight = lbl.frame.size.height; 现在我们可以获取标签的高度并将其用于动态高度,并在 TableView 委托方法“heightForRowAtIndexPath”中分配它。希望对你有帮助!!! 我的 uitableviewcell 中不仅有这个标签,动态标签会出现在一些对象之间,所以我不能通过编程来做到这一点,以前我试过这样,它执行得非常慢,这就是为什么在 IB 中使用自动布局。

以上是关于在 IB 中为 UILabel 设置 HTML 文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在情节提要中为uilabel设置大于300的字体大小?

如何在iPhone中为UILabel的背景设置渐变色

你在哪里以编程方式在 UIView 中为 UILabel 设置文本?

iOS:自动布局中的多行 UILabel

如何在 swift 中为 UILabel 中的递增数字设置动画

在 tableView(:didSelectRowAt) 中为自定义表格单元格 UILabel 设置值