美文网首页
iOS-文字行高

iOS-文字行高

作者: Freedom_fly | 来源:发表于2018-08-01 18:58 被阅读503次

    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行距与行高

    相关文章

      网友评论

          本文标题:iOS-文字行高

          本文链接:https://www.haomeiwen.com/subject/jfxkpftx.html