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;
paragraphStyle
的lineSpacing
是指第一行文字与第二行文字的行间距(这个行间距包括文字的留白区域),如果直接设置:
[paragraphStyle setLineSpacing:lineSpacing];
实际行高是大于UI的行高的,所以需要减去自带的留白,重新设置行间距(完整代码如上)。
之所以会大于UI要求的行高,原因如下:
image.png
具体解释与说明请参考:
iOS行距与行高
网友评论