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


image.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,033评论 3 119
  • 就这样,埋下一颗种子 初三(15)班 吴霜 天已入冬了,像是为了躲避寒冷,太阳...
    且向洞庭赊月色阅读 12,986评论 0 6
  • 今天参加了樊登读书会夜成长课堂,本期课程为《赢在沟通力》,今天是第一节课,分为两小节,题目分别是互联网时代“心”管...
    今天安好阅读 1,794评论 0 0