UILabel 动态计算高度

时间:2021-07-09 22:39:08
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
//设置自动行数与字符换行,为0标示无限制
[label setNumberOfLines:0];
label.lineBreakMode
= NSLineBreakByWordWrapping;//换行方式
NSString
*strTest = @"用中问和英文 混合测试! just test, good luck!! 看看行不行";

UIFont
*font = [UIFont fontWithName:@"Arial" size:12];
label.font
= font;

CGSize size = CGSizeMake(LableWight,CGFLOAT_MAX);//LableWight标签宽度,固定的
//计算实际frame大小,并将label的frame变成实际大小

CGSize labelsize = [strTest sizeWithFont:font constrainedToSize:size lineBreakMode:label.lineBreakMode];
label.frame
= CGRectMake(0,0, labelsize.width, labelsize.height); label.text = strTest; [self.view addSubview:label];