在 UILabel 中,是否可以强制一行不在斜线处断开?

问题描述 投票:0回答:3

示例:我的文字是

@"This is a great UI/UX feature"

一个更好的例子:

@"5/17 of this quantity"

是否可以强制线不在

/
(斜杠)处断开?

我正在寻找一种通用的做法,因为我还有其他带有斜杠的句子。

ios uilabel core-text hyphenation
3个回答
4
投票

一个选项是使用 Unicode 字符而不是普通斜杠。

unicode 中有空格和连字符的不间断版本。如果您可以更改为使用 - 而不是 /,则使用

@"UI\u2011UX"
将显示 UI-UX 并且不会在连字符处断线。

斜杠似乎没有等效的不间断,但是您可以尝试另一种风格的斜杠。例如

UI\u2044UX
不会换行,而是使用分数斜线显示 UI/UX。请参阅http://www.fileformat.info/info/unicode/char/2044/index.htm

我刚刚在 UILabel 上尝试过,使用 unicode 字符可以防止换行。您只需决定要使用哪个斜杠或替代方案即可。


0
投票

是的,这是可能的 - 只需将“/”或任何其他符号(旁边要防止换行的符号)替换为零长度的不间断空格 - 它是 \u{2060},例如:

anyTitle.replacingOccurrences(of: "/", with: "\u{2060}/\u{2060}")

“\u{2060}”可防止任何符号前后换行。 在 iOS 17 中它运行良好。

我从这里学到的在UILabel中,是否可以强制一条线不在某个地方断线


-2
投票

试试这个...

self.label.text=[self.label.text stringByReplacingOccurrencesOfString:@"/" withString:@" "];
© www.soinside.com 2019 - 2024. All rights reserved.