在 UILabel 中以不同方式格式化文本

Posted

技术标签:

【中文标题】在 UILabel 中以不同方式格式化文本【英文标题】:Formatting text within UILabel differently 【发布时间】:2011-09-30 17:06:55 【问题描述】:

我希望 UILabel 中的不同单词具有不同的颜色。这是否意味着每个单词都需要是不同的 UILabel?我猜是的,尽管以某种方式将颜色代码放在标签中肯定会很好,你知道吗?我想我有点被 html 中的文本标记宠坏了。

【问题讨论】:

【参考方案1】:

ios 中没有合适的UIRichTextView。它在我的 iOS 6 愿望清单上很重要(有理由相信,由于 Pages 的发布,我们可能会得到它)。

您的选择是使用多个 UILabel 视图、NSString UIKit Additions、Core Text、UIWebView 或少数第三方框架之一,例如:

NSAttributedString-Additions-for-HTML CoreTextWrapper OHAttributedLabel OmniUI

所有当前的解决方案都有不同的问题。最常见的问题是很难获得选择和复制功能来处理富文本,除非您使用 Web 视图。 Web 视图非常烦人,因为它们是异步的,您必须在 javascript 中进行大量交互。

希望有更好的答案。

(强制性先令:这个话题在iOS 5 Programming Pushing the Limits的第18章中有深入讨论。)

【讨论】:

【参考方案2】:

UILabel 不支持分段格式(整个东西只能有一种格式)。

看看OHAttributedLabel,它可以满足您的需求。

【讨论】:

【参考方案3】:

据我所知,您需要为每个不同颜色的单词设置单独的标签。根据您要执行的操作,您可以使用myLabel.textColor 定期更改颜色或事件等。

【讨论】:

以上是关于在 UILabel 中以不同方式格式化文本的主要内容,如果未能解决你的问题,请参考以下文章

当 UIStepper 在 Swift 4 中以编程方式点击时如何更改 UILabel 的文本,如果它们都在 UITableViewCell 中?

将utf-8文本转换为UILabel

如何在 Swift 中以编程方式将 UILabel 对象居中?

如何在框架中水平(向上/向下)居中 UILabel 文本?

我想要在 TextArea 中以相同格式输入的文本

在 UIView 中以编程方式创建的 UILabel 未更新