ios 设置label的高度随着内容的变化而变化

时间:2022-12-22 05:57:43

好吧

步骤1:创建label

_GeRenJianJie = [[UILabel alloc]init];

步骤2:设置label

_GeRenJianJie.textColor = RGBAColor(95, 104, 115, 1);
_GeRenJianJie.numberOfLines = 0; // 需要把显示行数设置成无限制
_GeRenJianJie.font = [UIFont systemFontOfSize:16]; _GeRenJianJie.textAlignment = NSTextAlignmentLeft;
_GeRenJianJie.text = @“xxxx ";

步骤三:计算label内容的大小

 CGSize size =  [self sizeWithStr:_GeRenJianJie.text font:_GeRenJianJie.font];

步骤4:设置label的frame

_GeRenJianJie.frame = CGRectMake(15, 30, [UIScreen mainScreen].bounds.size.width-30, size.height);
[footView addSubview:_GeRenJianJie];

这样就搞定了

其中涉及到一个方法返回label的大小

// 定义成方法方便多个label调用 增加代码的复用性
- (CGSize)sizeWithSt:(NSString *)string font:(UIFont *)font
{
CGRect rect = [string boundingRectWithSize:CGSizeMake(320, 8000)//限制最大的宽度和高度
options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading |NSStringDrawingUsesLineFragmentOrigin//采用换行模式
attributes:@{NSFontAttributeName: font}//传人的字体字典
context:nil]; return rect.size;
}