gpt4 book ai didi

iphone - 显示大量 RichText : Choosing the best option

转载 作者:IT王子 更新时间:2023-10-29 08:12:15 24 4
gpt4 key购买 nike

显示大量 RichText(HTML 格式)的最佳方式是什么

目前我正在为一个论坛开发一个应用程序。正如您所期望的,网站上的帖子有很多 HTML 格式、列表、图像粗体文本、彩色文本等...

现在我可以想到几个选项(不是很理想,如果您想到任何其他选项,请在评论中发布):

  • 自定义单元格使用 NSAttributedString+HTML + DTAttributedTextView每个帖子?

    问题:我在其他地方的应用程序中使用了 NSAttributedString+HTML 类别,但它不太理想,即使是少量创建 NSAttributedString 似乎也非常昂贵(缓慢)。对于 10 篇以上的文章,每篇文章的长度都可能是整篇文章的长度,这将是糟糕的 + 尽管 DTAttributedTextView 支持 IMG html 标签(大多数标签),但它不支持远程加载图像,除非您指定它们的宽度和高度在 img 标签中。对于 IMG 标签可能是笑脸 (10*10) 或屏幕截图 (640*960) 的论坛,无法预测。 (自从写了这个 NSAttributedString+HTML,现在更名为 DTCoreText ,添加了对 <img> 标签的全面支持,并且有了很大的改进!)

  • 为每篇文章自定义带有 UIWebView 的单元格?

    这个我考虑了很长时间,但是在阅读时 this blog post我意识到一个问题会导致平滑滚动。为站点提供 native 应用程序的想法是,它比使用简单的 UIWebView 查看站点移动主题更好。如果应用程序在滚动时滞后并且不稳定,那更糟而不是更好(也因为我需要显示隐藏 webview 的图像,就像他建议的那样行不通)。此外,UIWebView 需要在主线程上创建,否则它们会中断。

  • 回到 UIWebView?恼人的是,除了做一个可悲的作弊,(就像在 iFans app 中)你只显示文本然后如果他们点击它一个 UIWebView 加载所有漂亮的图像等等......,唯一的选择似乎是做我想想 TapaTalk 应用程序,并将整个线程 View 作为 UIWebView。这不是坏的,因为它可能会有很好的性能,并且允许我添加用户控制的主题等。但我发现在网站中使用 UIWebView 的想法 native 令人反感的应用。

有没有人有创建基于网络的应用程序的经验,例如 可能 facebook 客户端、论坛应用程序或必须显示网站内容的新站点应用程序(我真的不算推特客户端,因为它只需要处理每个帖子的少量文本和链接)。或者关于在 iOS 应用程序中显示 RichText 内容的最佳方式的任何想法?

任何想法都必须处理很多问题:

  • 多色文本。
  • 右对齐、左对齐和居中对齐的文本。
  • 图片(大小可变)。
  • 粗体文本。
  • 不同大小和字体的文本。
  • 给文字加下划线。
  • YouTube 视频。
  • HTML 表格。

以防万一实际问题不是很清楚,我会总结一下:

为论坛客户端应用程序显示大量 RichText(HTML 格式)内容的最佳方式是什么

最佳答案

如果我没看错,您希望给定主题的论坛帖子是 UITableView 的单元格,并且单元格需要丰富的格式吗?

假设这是正确的,我想每个帖子都会占据很多屏幕(大单元格高度)。在这种情况下,将 UIWebView 作为 subview 在性能方面可能并不像您想象的那么糟糕。 UITableView 重用单元格,所以实际上只有可见的单元格需要加载到内存中。

我还假设您可以通过 API 访问论坛,对吗?在这种情况下,您应该能够在加载 View 之前立即预加载数据,并且 UIWebViews 将仅用于格式化。当您将 HTMLString 加载到您的 UIWebView 时,您甚至可以从您的应用程序包中加载一个 CSS 文件,这样您就不会每次都从服务器加载它。

综上所述,如果您确实有很多并发可见的单元格,则情况可能会有所不同,我可能会考虑仅在 UITableView 索引中显示纯文本并仅在用户点击单元格时显示丰富的格式查看单个帖子。从设计的角度来看,这也可能更好,因为屏幕上有大量不同格式的单元格可能最终看起来有点草率。

此外,这可能是显而易见的(特别是因为您似乎既注重性能又注重设计)但请不要将 UIWebView 用于 UI 控件。每当我看到 UIWebView 选项卡栏或假导航栏时,我都会畏缩(ack,Netflix)。但是对于格式化,如果您从服务器加载大量动态内容,很多时候它是唯一的飞行方式。

关于iphone - 显示大量 RichText : Choosing the best option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6626294/

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