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

时间:2022-04-26
本文章向大家介绍ios 设置label的高度随着内容的变化而变化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<br>

好吧 

步骤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;
}