如何像 iPhone 短信一样给文本部分加下划线?

3

我使用UILabel显示文本,采用多行和UILineBreakModeWordWrap模式,并且最大宽度为200。
例如,这是文本:

我真的真的想要强调第一个单词和第二个单词,你能帮帮我吗?

我想要强调“第一个单词”和“第二个单词”。

如果文本以单行模式显示,则可以使用NSString的sizeWithFont方法轻松计算“第一个单词”的位置,然后重写- (void)drawTextInRect:(CGRect)rect来绘制线条。

但在多行模式下,我不知道如何获取位置。你有什么想法吗?

2个回答

6

关于iPhone上缺少的NSAttributedString,人们开始构建自己的文本布局系统来解决这个问题,这引起了一些讨论。在这个领域有一些项目正在进行中。你可能想看看Three20项目及其TTStyledTextLabel


TTStyledTextLabel正是我想要的。非常感谢。 - Neng

5
使用UIWebView来显示文本,这是苹果推荐的富文本解决方案。

是的,UIWebView 绝对可以解决我的问题,但仅仅展示一个句子是否有点过于沉重了呢? - Neng
我对UIWebView也有这种感觉。但尽管如此,这是苹果推荐的。请看我的第二个答案。 - Nikolai Ruhe
那已经是一段时间以前的事了。我想我记得他们在WWDC上说过这个。无论如何,在2009年,没有其他内置控件能够处理富文本。 - Nikolai Ruhe
这是一篇关于WWDC 2011的文章,Justin Garcia在其中解释了如何使用UIWebView在iOS上实现“桌面级”富文本编辑:https://developer.apple.com/videos/wwdc/2011/includes/rich-text-editing-in-safari-on-ios.html#rich-text-editing-in-safari-on-ios - Nikolai Ruhe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接