我们需要根据UILabel中字符串的多少来确定label的大小(长度),下面是label自适应大小的方法
//初始化label
//初始化label
UILabel
*label = [[UILabel
alloc] initWithFrame:CGRectMake(0,0,0,0)];
//设置自动行数与字符换行
[label
setNumberOfLines:0];
// 0代表有无限多行
label.lineBreakMode
=
UILineBreakModeWordWrap;
// 这个是换行模式,按单词换行
//
测试字串
NSString
*str =
@" 这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...这里有好多字...";
//
把字符串加到label上
label.text
= str;
//
设置字体
label.font
= [UIFont fontWithName:@"Arial"size:12];
//设置一个行高上限
CGSize
size =
CGSizeMake(label.frame.size.width,2000);
//计算实际frame大小,并将label的frame变成实际大小
CGSize
labelSize = [label.text
sizeWithFont:label.fontconstrainedToSize:size
lineBreakMode:UILineBreakModeWordWrap];
label.frame
=
CGRectMake(0,
0, label.frame.size.width,
labelSize.height);