cell中label有多行文字的适配

案例场景:

cell里有多个控件,其中包含一个label,此label的文字(字段为value)数目不一定,且为了好看,label每行文字间要求有一定的间距

1.首先想到的是计算某段文字的高度的方法 boundingRectWithSize计算文字的高度,NSMutableAttributedString的NSMutableParagraphStyle方法设置行间距,但是1:由于此label用到了sizettoit方法;2:且在heightforrow方法中NSMutableParagraphStyle的setLineSpacing方法设置的行间距根本没有被加进去,故在cell中计算的高度与heightforrow中计算的高度有出入,且在heightforrow方法中根本无法对此label的sizetofit方法对label高度产生的影响进行计算

2.由于label在cell中使用了sizetofit方法,导致heightforrow方法计算label高度不准确。故在cell中及heightforrow’方法中计算label高度时,创建了一个透明的label1,label1的内容取value字段,在label1赋值为value后,label1调用sizetofit方法后,将label的高度设置为label1.height。通过创建label1的方法成功解决了cell及heightforrow方法中计算label高度不一致的bug。

注意:此label在heightforrow及cell类中的高度都要创建新的label1来计算,为了避免创建这么多不显示的对象,为了避免消耗内存,可以在这两个类中分别创建label1为属性,只在相应位置改变其frame即可





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值