20

我有一个应该有两行长的 UILabel。文本已本地化为法语和英语。

我正在设置标签的属性文本属性。文本由三个附加字符串构成,例如 textFragment1、textFragment2 和 textFragment3。中间的字符串实际上是使用 NSTextAttachment 创建的图像。

我想确保 textFragment2 和 textFragment3 在同一行。第一个字符串可能会或可能不会换行,具体取决于它的长度。问题是我的法语文本目前相当短,所以该行在 textFragment2 之后换行。

我已通过在 textFragment1 的本地化法语文本中添加换行符来临时解决此问题。不过,我真的不喜欢这个解决方案。我想知道是否有一种方法可以处理 textFragment2 和 textFragment3 以便它们始终在同一行上。

4

1 回答 1

42

您可以使用不间断空格 ( \u00a0) 来连接 textFragment2 和 textFragment3。这个字符看起来就像一个普通的空格——即它产生相同数量的空白——但在它的任何一侧都不会发生换行。

您也可以使用零宽度空格 ( \u2060)。使用此字符不会产生任何空白,但仍会防止任何一侧的换行。如果您不希望在 textFragment2 和 textFragment3 之间有任何空格,但您仍想防止在那里换行,这就是您想要的。(如果你有一个中间有连字符的单词,但你想防止连字符后面的行被中断,这也很有用。)

您可以在 Wikipedia 上阅读有关此类字符的更多信息。

于 2014-08-20T14:37:45.523 回答