iOS-文字行高

2018-08-01  本文已影响503人  Freedom_fly

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要求的行高,原因如下:


image.png

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

上一篇 下一篇

猜你喜欢

热点阅读