1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 修改UILabel的行间距

修改UILabel的行间距

时间:2021-10-18 21:09:58

相关推荐

修改UILabel的行间距

在iOS开发中 有时候为了调整一些UI效果 我们需要调整UILabel之间的行间距:

contentLabel.text:label上显示的文字内容;

5:label行间距;

contentLabel:需要设置行间距的label

contentTextFont:字体大小;

contentLabelW:label的宽度

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:contentLabel.text];;NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];[paragraphStyle setLineSpacing:5];[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, contentLabel.text.length)];contentLabel.attributedText = attributedString;

//调节高度(在计算label的高度的时候需要注意 因为行间距变化了 不再是系统默认的行间距了 所以在计算的时候要根据实际的行间距去调整)

CGSize contentTextSize = [self sizeOfText:contentLabel.text WithFont:contentTextFont maxSize:CGSizeMake(contentLabelW, CGFLOAT_MAX)];CGSize size = [contentlabel.text sizeWithFont:contentTextFont];int length = size.height;int colomNumber = contentTextSize.height/length;

//contentLabelH 就是label的实际高度CGFloat contentLabelH = contentTextSize.height+colomNumber*5;

//CGSize size = CGSizeMake(width, 500000);//CGSize labelSize = [contentLabel sizeThatFits:size];

高度计算思路:

首先要计算label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的) 然后计算label中每行文字对应的高度 然后label高度除以文字的高度就是label行数

当我们知道label的行数是 也知道了行间距

那么label的实际高度就是label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的)加上(行数*间距)

PS:这个计算方法不是很好 忽略了系统默认的间距 虽然默认的间距很小 但是忽略的话也会给实际尺寸的计算带来较大误差 另外计算也比较麻烦 我觉得应该还有更简单更方便的方法 只是一时没想到 如果有知道更好方法的小伙伴 请联系我!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。