让我们看看我有一个这样的字符串:

NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";  

如何使UILabel像这样显示消息

五星级 BBBBB CCCCC

我不认为\n能被UILabel识别,我能在NSString中放入什么东西让UILabel知道它必须在那里创建换行符吗?


当前回答

如果你将可用属性从普通设置为有属性…UILabel将保存多行文本,无论你的UILabel高度和宽度设置为适合你想要显示文本的屏幕区域。

其他回答

如果你将可用属性从普通设置为有属性…UILabel将保存多行文本,无论你的UILabel高度和宽度设置为适合你想要显示文本的屏幕区域。

//不要忘记将numberolines设置为0

UILabel* locationTitle = [[UILabel alloc] initWithFrame:CGRectMake(5, 30, 230, 40)];
locationTitle.font = [UIFont systemFontOfSize:13.0];
locationTitle.numberOfLines = 0;
locationTitle.text = [NSString stringWithFormat:@"Eaton industries pvt. Ltd \nUK Apr 12"];
[cell addSubview:locationTitle];

如果你使用UILabel,你必须记住默认设置是1行,所以不管你添加了多少换行符(\n或\r),你需要确保它被设置为不止一行,这样它就可以被允许追加更多的行。

另一种选择是使用UITextView,它实际上是用于多行。

你可以在UILabel的XCode属性部分轻松实现这一点,见截图:

在Xcode 6上,我可以在swift编程上使用\n没有问题

就像这样做

NSString * strCheck = @"A\nB";

strCheck = [strCheck stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];  //This is to prevent for fetching string from plist or data structure

label.numberOfLines = 0;

label.lineBreakMode = NSLineBreakByWordWrapping;

label.text = strCheck;