(转载)iOS UILabel自定义行间距时获取高度

本文介绍使用TTTAttributedLabel实现自定义行间距的UILabel,并详细说明如何获取该UILabel的高度,包括设置属性、计算高度等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍一下自定义行间距的UILabel的高度如何获取,需要借助一下开源的UILabel控件:TTTAttributedLabel

附下载地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel 

下载后,添加到工程里面,导入头文件

 #import "TTTAttributedLabel.h"

直接上代码

复制代码
NSString *str = @"UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度.";
    
    //创建tttLabel
    TTTAttributedLabel *tttLabel = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(30, 55, 300, 100)];
    tttLabel.lineBreakMode = NSLineBreakByCharWrapping;
    tttLabel.lineSpacing = 6;//设置行间距
    tttLabel.font = [UIFont systemFontOfSize:12];
    tttLabel.numberOfLines = 0; //设置行数为0
    [tttLabel setText:str];
    tttLabel.textAlignment = NSTextAlignmentLeft;
    tttLabel.backgroundColor = [UIColor redColor];
    [self.view addSubview:tttLabel];
    
    //获取tttLabel的高度
    //先通过NSMutableAttributedString设置和上面tttLabel一样的属性,例如行间距,字体
    NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:str];
    //自定义str和TTTAttributedLabel一样的行间距
    NSMutableParagraphStyle *paragrapStyle = [[NSMutableParagraphStyle alloc] init];
    [paragrapStyle setLineSpacing:6];
    //设置行间距
    [attrString addAttribute:NSParagraphStyleAttributeName value:paragrapStyle range:NSMakeRange(0, str.length)];
    //设置字体
    [attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:NSMakeRange(0, str.length)];
    
    //得到自定义行间距的UILabel的高度
    CGFloat height = [TTTAttributedLabel sizeThatFitsAttributedString:attrString withConstraints:CGSizeMake(300, MAXFLOAT) limitedToNumberOfLines:0].height;
    
    //重新改变tttLabel的frame高度
    CGRect rect = tttLabel.frame;
    rect.size.height = height;
    tttLabel.frame = rect;

 

 

转载于:https://www.cnblogs.com/songxing10000/p/5103580.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值