label 根据内容text确定控件的大小 分为单行/多行文字

这篇博客介绍了如何根据UILabel中文字的内容动态调整其大小。对于只有一行文字的情况,通过计算文字尺寸来设定标签的宽度和高度。而对于多行文字,设置numberOfLines为0,并使用boundingRectWithSize方法来确定适应文字的尺寸,以实现自适应显示。同时,讲解了boundingRectWithSize方法的作用和CGSize的意义。

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

如果 label 文字只有一行

UILabel *label1=[[UILabelalloc]initWithFrame:CGRectZero];

       label1.text=@"";//label 文字较少 只用一行就能显示

       label1.font=SYSTEMFONT(15);

       label1.textColor=RGBCOLOR(77,187, 254);

       CGSize size1=[label1.text sizeWithAttributes:@{NSFontAttributeName:label1.font}];

       label1.frame=CGRectMake(0,0, size1.width, size1.height);


如果是多行文字,

UILabel *label2=[[UILabelalloc]initWithFrame:CGRectZero];

       label2.text=@"比较多的文字";

       label2.font=SYSTEMFONT(12);

       label2.textColor=RGBCOLOR(65,65, 65);

       label2.numberOfLines=0;   //设置行数

        //   CGSize size2=[label2.textsizeWithAttributes:@{NSFontAttributeName:label2.font}];

        CGSize size2 = [label2.text boundingRectWithSize:CGSizeMake(SCREEN_WIDTH-40,SCREEN_HEIGHT) options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:12]}context:nil].size;

//boundingRectWithSize 根据 text 的大小font 设置显示范围  ??还没有弄清楚 cgsize 是什么作用

       label2.frame=CGRectMake(0,CGRectGetMaxY(label1.frame)+15,SCREEN_WIDTH-40,size2.height);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值