关于自适应label — 自适应宽/高度

本文主要探讨了Label的自适应宽度实现,并分享了如何进行自适应高度的设置。通过调整label的numberOfLines属性为0,可以实现内容自动换行,达到自适应高度的效果。

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

label 的自适应宽度经常会遇到啦,在这里整理一下

CGSize sizeLabel5 = [_label5.text sizeWithFont:_label5.font constrainedToSize:CGSizeMake(MAXFLOAT, sizeLabel5.height) lineBreakMode:NSLineBreakByCharWrapping];

当让,在iOS7 已经快过时了,所以,我们尽量使用下面这种,我认为这种很强大,你将所有属性定义,当成字典填进去,基本一般的都可以实现。

CGSize sizeLabel5 = [_label5.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:_label5.font,NSFontAttributeName, nil]];
_label5.frame = CGRectMake(0, 0, sizeLabel5.width,sizeLabel5.height);

这是自适应高度的

<p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><pre name="code" class="objc">float height = [_label5.text boundingRectWithSize:CGSizeMake(250, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:_label5.font} context:nil].size.height;
CGRect label = _label5.frame;
label.size.height = height;
_label5.frame = label;

 

当然上面这种自适应高度的对好多控件还适应,比如UITextView 

但是,我觉得一般label没必要自适应高度,令

_label5.numberOfLines = 0; 也可以自适应。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值