Ios UILabel lineBreakMode,在特定字符处断开

Ios UILabel lineBreakMode,在特定字符处断开,ios,uilabel,line-breaks,Ios,Uilabel,Line Breaks,有没有办法在UILabel中的特定字符(比如“;”)处打断文本 我不希望用换行符或换行符将其断开。当然,在显示字符串之前,只需将所有出现的“;”替换为“;\n”。不能使用断开行此字符。如果要换行,请将此字符替换为\n字符 label.text=[label.text stringByReplacingOccurrencesOfString:@";" withString:@"\n"]; 使 label.numberOfLines = 0. 并更新标签框 CGSize labelSize =

有没有办法在
UILabel
中的特定字符(比如“;”)处打断文本


我不希望用换行符或换行符将其断开。

当然,在显示字符串之前,只需将所有出现的“;”替换为“;\n”。

不能使用
断开行此字符。如果要换行,请将此字符替换为
\n
字符

label.text=[label.text stringByReplacingOccurrencesOfString:@";" withString:@"\n"];
使

label.numberOfLines = 0.
并更新标签框

CGSize labelSize = [label.text sizeWithFont:label.font  constrainedToSize:label.frame.size lineBreakMode:label.lineBreakMode];

label.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, labelSize.height);
您可以使用
(\r)
而不是换行符
(\n)
来创建换行符

numberOfLines
设置为
0
以允许任何行数

yourLabel.numberOfLines = 0;
就像您的情况一样,只需替换
带有
\n

NSString *string = @"This; is a; NSString";

string = [string stringByReplacingOccurrencesOfString:@";"
                                     withString:@";\n"];

可以将换行符和换行符组合使用。请检查以下代码

self.testLabel.text = @"abc;\nabc;";

self.testLabel.numberOfLines = 0;

CGSize labelSize = [self.testLabel.text sizeWithFont:self.testLabel.font
                          constrainedToSize:self.testLabel.frame.size
                              lineBreakMode:self.testLabel.lineBreakMode];

self.testLabel.frame = CGRectMake(
                         self.testLabel.frame.origin.x, self.testLabel.frame.origin.y,
                         labelSize.width, labelSize.height);

还有一种方法可以在有限的环境下工作。您可以将普通空格(\U+0020)替换为非中断空格(\U+00A0)。这将允许您限制字符串中断的位置数。例如,如果您有一个字符串,如:

I have a string with two sentences. I want it to preserve the sentences.
通过小心地使用不间断的空格,你可以让它像这样间断

I have a string with two sentences. 
I want it to preserve the sentences.
如何:

对于InterfaceBuilder中的字符串:

转到系统首选项->键盘->输入源->+ 选择类别“其他”和键盘“Unicode十六进制输入” 选择“添加” 确保选择了“在菜单栏中显示输入法”。 关闭系统首选项

返回XCode并找到您的字符串 使用菜单栏中的键盘菜单,选择Unicode键盘 在字符串中选择一个空格。类型选项+00a0。完成4位数字序列后,将显示一个空格。这个空间是一个不间断的空间。对需要删除的所有空格重复此操作


对于编程字符串,您可以根据需要添加\U00A0。

在我的字符串中多次(,0r;)然后每次换行,我可以做什么。在你的答案中,最好是单次(,或;)和断线。@当你想第一次断线时,请摇摇晃晃;还是最后;?最后,我有一段例如段落考虑4逗号(,)),这段发生四行。每次逗号(,)后换行谢谢。
label.text=[label.text stringByReplacingOccurrencesOfString:@”,“with string:@”\n“]请尝试使用此选项。在Swift中,您可以通过编程方式执行
“\u{00a0}”