gpt4 book ai didi

ios - 渲染一个任意大的 NSAttributedString

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:58 24 4
gpt4 key购买 nike

我需要呈现一个(任意大的)NSAttributedString,在本例中是来自(任意长的)telnet session 的 ANSI 彩色文本。文本不需要可内联编辑。我探索了几个选项:

  • UITextView 似乎具有迄今为止最好的性能,而且由于我的目标是 iOS 6,它非常容易与属性字符串一起使用。但是,随着添加更多文本,textview 的呈现速度会逐渐变慢,因为每次我调用 setAttributedString: 时它都会访问 HTML DOM 解析器并阻塞 UI。
  • 我已经尝试了一些核心文本呈现框架,TTTAtributedLabelOHAttributedLabel,随着文本的增多,它们的速度也会逐渐变慢。公平地说,它们可能不是为这类事情设计的标签!
  • UIWebView (gag) 在旋转和保持文本适当大小和框架方面存在一些问题,但我认为我可以解决它。我可以将我的属性字符串转换为 HTML 并使用 JavaScript 来附加(注入(inject))收到的新文本。这里的表现出奇的好。
  • 一位 friend 建议我将用户的当前滚动位置视为进入更大文档的视口(viewport),并且(可能与核心文本一起)仅呈现属性字符串的可见部分。我担心这会如何影响滚动性能。

所以我求助于你,勇敢的互联网。独立开发者的想法? WebView 是我最好的选择吗?

最佳答案

您可以使用 UITableView 并将 NSAttributedString 拆分为一个子字符串数组,每个子字符串都适合单元格的标签宽度。 TableView 的数据源将索引到子字符串数组中,以确定应将原始字符串的哪一行放置在每个单元格中。

关于ios - 渲染一个任意大的 NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386355/

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