让我们看看我有一个这样的字符串:
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
如何使UILabel像这样显示消息
五星级 BBBBB CCCCC
我不认为\n能被UILabel识别,我能在NSString中放入什么东西让UILabel知道它必须在那里创建换行符吗?
让我们看看我有一个这样的字符串:
NSString *longStr = @"AAAAA\nBBBBB\nCCCCC";
如何使UILabel像这样显示消息
五星级 BBBBB CCCCC
我不认为\n能被UILabel识别,我能在NSString中放入什么东西让UILabel知道它必须在那里创建换行符吗?
当前回答
在Xcode 6上,我可以在swift编程上使用\n没有问题
其他回答
对于任何其他人,可能有问题sizeWithFont:constrainedToSize:lineBreakMode:或任何人切换到ios8(该方法已弃用ios7),我通过使用sizeToFit来调整我的高度。
UILabel *label;
label.numberOfLines = 0;
// Setup label with desired settings
...
[label sizeToFit];
label.frame = CGRectMake(label.frame.origin.x, // Or use any desired origin
label.frame.origin.y,
label.frame.size.width, // Or use any desired width
label.frame.size.height);
只是使用标签。numberolines = 0;
textLabel.text = @"\nAAAAA\nBBBBB\nCCCCC";
textLabel.numberOfLines = 3; \\As you want - AAAAA\nBBBBB\nCCCCC
textLabel.lineBreakMode = UILineBreakModeWordWrap;
NSLog(@"The textLabel text is - %@",textLabel.text);
如果你使用UILabel,你必须记住默认设置是1行,所以不管你添加了多少换行符(\n或\r),你需要确保它被设置为不止一行,这样它就可以被允许追加更多的行。
另一种选择是使用UITextView,它实际上是用于多行。
你可以在UILabel的XCode属性部分轻松实现这一点,见截图:
我也遇到过同样的问题,下面是我解决问题的方法。希望这对某些人有所帮助。
// Swift 2
lblMultiline.lineBreakMode = .ByWordWrapping // or use NSLineBreakMode.ByWordWrapping
lblMultiline.numberOfLines = 0
/ / objective - c
lblMultiline.lineBreakMode = NSLineBreakByWordWrapping;
lblMultiline.numberOfLines = 0;
// c# (Xamarin.iOS)
lblMultiline.LineBreakMode = UILineBreakMode.WordWrap;
lblMultiline.Lines = 0;