Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在iOS应用程序中使用HTML标记显示文本的最佳方式?_Iphone_Ios_Objective C - Fatal编程技术网

Iphone 在iOS应用程序中使用HTML标记显示文本的最佳方式?

Iphone 在iOS应用程序中使用HTML标记显示文本的最佳方式?,iphone,ios,objective-c,Iphone,Ios,Objective C,目前我正在使用iOS客户端进行网络聊天。因此,聊天信息具有HTML标记(粗体、斜体、下划线、字体颜色、图像(微笑)等)。例如: 粗体斜体序数文本 目前,我有两个如何显示消息的想法: 将UIWebView添加到表格单元格。但我认为这不是一个选项,因为我们将有很多信息和很多网络视图 将UITextView添加到表格单元格,解析HTML标记并对属性字符串进行必要的更改。但是UITextView不支持图像(如果我是对的话) 有没有其他(更好的)方式来显示这样的数据(样式文本+图像)?你可以从这些东西中得

目前我正在使用iOS客户端进行网络聊天。因此,聊天信息具有HTML标记(粗体、斜体、下划线、字体颜色、图像(微笑)等)。例如:

粗体斜体序数文本

目前,我有两个如何显示消息的想法:

  • 将UIWebView添加到表格单元格。但我认为这不是一个选项,因为我们将有很多信息和很多网络视图
  • 将UITextView添加到表格单元格,解析HTML标记并对属性字符串进行必要的更改。但是UITextView不支持图像(如果我是对的话)

  • 有没有其他(更好的)方式来显示这样的数据(样式文本+图像)?

    你可以从这些东西中得到灵感。它正在做你想做的事情。

    在每个单元格中使用网络视图不会像你想象的那样起作用。webview需要相当长的渲染时间,这意味着您可能最终会看到旧webview内容暂时显示在重复使用的单元格中,直到新内容渲染为止。Webview也是一个相当重的UI元素,如果同时在屏幕上更新其中的许多元素,您将遇到性能问题

    您将希望使用类似的库将给定的HTML文本解析为属性字符串。从这里开始,如果您可以以iOS 6或更高版本为目标,则可以在标准的
    UILabel
    上设置
    attributedText
    属性。如果需要针对较早的iOS版本,可以再次使用DTCoreText,特别是
    DTAttributedLabel
    DTAttributedTextCell
    组件

    解析和NSAttributedString呈现都可以使用XML解析器和CoreText手动完成,但DTCoreText将使您的生活更加轻松


    更新:您在评论中提到希望获得
    的支持。DTCoreText确实有一些基本的图像支持,但如果使用CoreText渲染文本,这是一个非常困难的问题,因为必须使文本正确地围绕图像流动,并在核心文本渲染器中保留一些空间以将图像放入。如果每个单元格只有一个图像,我建议您手动提取图像路径/url,并在文本旁边放置一个
    UIImageView

    您还可以使用本机iOS类将HTML转换为NSAttributedString。请看下面的帖子

    谢谢,真是好东西。但它似乎不支持图像(即IMG标记):(这是HTML,不是BBCode。您也可以通过本机iOS类实现。看到这个答案了吗?这不是一个简单的方法,但我会尝试。谢谢。