iOS-文字行高

UILabel设置富文本行高:

UI标注多是以2倍为标准,如果2倍下行高是48,1倍行高就是24,24-字号就是代码中lineSpacing的值

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];    
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:(lineSpacing-(label.font.lineHeight - label.font.pointSize))];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
label.attributedText = attributedString;

paragraphStylelineSpacing是指第一行文字与第二行文字的行间距(这个行间距包括文字的留白区域),如果直接设置:

[paragraphStyle setLineSpacing:lineSpacing];

实际行高是大于UI的行高的,所以需要减去自带的留白,重新设置行间距(完整代码如上)。

之所以会大于UI要求的行高,原因如下:


iOS-文字行高_第1张图片
image.png

具体解释与说明请参考:
iOS行距与行高

你可能感兴趣的:(iOS-文字行高)