让我们看看我有一个这样的字符串:
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 11, Swift 5的\n工作良好,尝试以下代码:
textlabel.numberOfLines = 0
textlabel.text = "This is line one \n This is line two \n This is line three"
其他回答
如果你将可用属性从普通设置为有属性…UILabel将保存多行文本,无论你的UILabel高度和宽度设置为适合你想要显示文本的屏幕区域。
只是使用标签。numberolines = 0;
对于那些想要一个简单的解决方案的人,请在Interface Builder中的文本标签输入框中执行以下操作:
确保你的行数设置为0。
Alt + Enter
(Alt是你的选项键)
干杯!
对于任何其他人,可能有问题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);
在Interface Builder中的小框中输入时使用option-return插入换行(\n)。在Interface Builder的Label属性中,设置# Lines = 0。
选择标签,然后将Lines属性更改为0,如上图所示,然后在字符串中使用\n作为换行符。