1

我是 iPhone 开发的新手,我有一个关于如何为我的应用程序创建视图的问题。

视图应该显示一个问题(使用格式化/语法突出显示的文本)和多个可能的答案。用户应该能够点击一个答案来验证它。

目前,我正在尝试使用嵌入 UIWebView 作为 contentView 的 UITableView。这使我可以轻松地显示格式化文本。问题是计算和调整单元格的高度真的很痛苦。我必须预加载 webview,调用 sizeToFit,获取它的高度,并相应地更新单元格。这个过程应该针对问题和答案进行(因为它们也是 HTML 格式的文本)。

太痛苦了,我打算换别的东西。我认为只使用一个大的 UIWebView 并在 HTML 中设计所有内容。但我查看了一些描述如何在 HTML 页面和 ObjectiveC 代码之间进行通信的文章。这似乎也涉及一些可怕的技巧......

所以......就是这样,我真的不知道我该怎么做。我想你们中的一些人以前处理过这样的事情,并且会提供一些非常感谢的提示:)

4

1 回答 1

1

这里的问题是 iPhone API 尚不支持 NSAttributedString,因此您不能只将文本设置为在 textview 中显示为您想要的。

我看到了一项工作,它基本上使用单独的 UILabel 来表示每个属性运行。(现在找不到链接。)他们使用 NSString UIKit 扩展来计算字符串在视图上的位置,然后用它来定位标签。

另一种解决方法是将字符串及其属性绘制到 UIImage 中,然后只显示图像。那将是我认为最简单的解决方案。

无论哪种情况,您都必须基本上重新创建属性字符串的数据结构。

NSAttributedString 为我们做了很多工作。当它消失时,我们真的很想念它。

于 2010-03-27T14:29:01.780 回答