ios 在UILabel中,是否可以强制某行不在某个位置断开

mkshixfv  于 2023-03-05  发布在  iOS
关注(0)|答案(1)|浏览(141)

我有一个UILabel,应该是两行长。文本被本地化为法语和英语。
我正在设置标签的attributedText属性,文本由三个附加字符串构成,比如textFragment1、textFragment2和textFragment3,中间的字符串实际上是用NSTextAttachment创建的图像。
我想确保textFragment2和textFragment3在同一行上。第一个字符串可能换行,也可能不换行,这取决于它的长度。问题是我的法语文本目前相当短,所以该行在textFragment2之后换行。
我在textFragment1的本地化法语文本中添加了一个换行符,暂时解决了这个问题。不过我并不喜欢这个解决方案。我想知道是否有一种方法可以处理textFragment2和textFragment3,使它们总是在同一行上。

83qze16e

83qze16e1#

您可以使用不换行的空格(\u00A0)连接textFragment 2和textFragment 3。此字符看起来就像普通空格-即,它会产生相同数量的空格-但不会在其两侧换行。
也可以使用零宽度空格(\u2060)。使用此字符不会产生任何空格,但它仍然会阻止两边的换行符,如果你不想在textFragment 2和textFragment 3之间有任何空格,但你仍然想阻止这里的换行符,这就是你想要的。(如果单词中间有连字符,但又不想在连字符后断行,则此功能也很有用。)
您可以阅读更多关于这类字符on Wikipedia的信息。

相关问题