有没有办法打破UILabel
中某个特定字符的文字说“;” ??
我不希望它被Word Wrap或字符Wrap打破。
答案 0 :(得分:4)
当然,只需替换所有出现的“;”在显示字符串之前使用“; \ n”。
答案 1 :(得分:2)
您可以使用(\r)
代替换行符(\n)
来创建换行符。
将numberOfLines
设置为0
以允许任意数量的行。
yourLabel.numberOfLines = 0;
与您的情况类似,只需将;
替换为;\n
NSString *string = @"This; is a; NSString";
string = [string stringByReplacingOccurrencesOfString:@";"
withString:@";\n"];
答案 2 :(得分:1)
你不能使用;
这个字符来分隔线。如果你想断行,那么用\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);
答案 3 :(得分:1)
还有另一种方法可以在有限的情况下使用。您可以用非中断空格(\ U + 00A0)替换普通空格(\ U + 0020)。这将允许您限制字符串中断的位置数。例如,如果你有一个像;
这样的字符串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.
HOW:
对于InterfaceBuilder中的字符串:
转到系统偏好设置 - >键盘 - >输入源 - > + 选择“其他”类别和键盘“Unicode Hex Input” 选择“添加” 确保选中“在菜单栏中显示输入法”。 关闭系统首选项
回到XCode并找到你的字符串 使用菜单栏中的键盘菜单,选择Unicode键盘 在您的字符串中选择一个空格。输入选项+ 00a0。完成4位数序列后,将出现一个空格。那个空间是一个不间断的空间。重复所需的所有空间。
对于程序化字符串,您可以根据需要添加\ U00A0。
答案 4 :(得分:0)
您可以使用换行符和换行符的组合。请检查以下代码,
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);