iOS UILabel 行间距

效果:


设置行间距效果.png
  1. 在当前类或者当前类的父类中添加如下方法:
/**
 设置固定行间距文本

 @param lineSpace 行间距
 @param text 文本内容
 @param label 要设置的label
 */
-(void)setLineSpace:(CGFloat)lineSpace withText:(NSString *)text inLabel:(UILabel *)label{
    if (!text || !label) {
        return;
    }
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = lineSpace;  //设置行间距
    paragraphStyle.lineBreakMode = label.lineBreakMode;
    paragraphStyle.alignment = label.textAlignment;
    
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
    label.attributedText = attributedString;
}
    //调用
    [self setLineSpace:8.0f withText:labelText inLabel:label];
  1. 在UILabel的类别中添加如下方法
#import <UIKit/UIKit.h>
@interface UILabel (String)
/**
 设置文本,并指定行间距

 @param text 文本内容
 @param lineSpacing 行间距
 */
-(void)setText:(NSString*)text lineSpacing:(CGFloat)lineSpacing;
@end
#import "UILabel+String.h"
@implementation UILabel (String)
-(void)setText:(NSString*)text lineSpacing:(CGFloat)lineSpacing {
    if (!text || lineSpacing < 0.01) {
        self.text = text;
        return;
    }
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:lineSpacing];        //设置行间距
    [paragraphStyle setLineBreakMode:self.lineBreakMode];
    [paragraphStyle setAlignment:self.textAlignment];
    
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
    self.attributedText = attributedString;
}
@end

    //调用
    [label setText:labelText lineSpacing:8.0f];

注意: 粗心的小伙伴别忘记设置 label 的 numberOfLines 属性哦~

期待你的评论建议O(∩_∩)O~

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

推荐阅读更多精彩内容

  • 注:新添加一个富文本方法,在文字只有一行的时候,取消行间距! 把下面两个方法随便放到一个公共的文件里,在.h声明这...
    xiao小马哥阅读 4,285评论 0 5
  • Label设置行间距 内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显...
    chernyog阅读 10,737评论 13 23
  • 做iOS开发的小伙伴们,肯定对UILabel这样的基础控件了解很深,也一定对label显示文本内容的宽高计算,尤其...
    life白玉兰阅读 4,322评论 3 11
  • 我们每天都在说话与人交流沟通,但是还是会发现鸡同鸭讲,得不到他人重视的情况。跟大家一起分享三个小技巧,共同练习,共...
    呆小五阅读 367评论 0 0
  • 大三的时候和两个朋友一起去西安旅行,走在西安的大街上看着车水马龙,听到有吉他的歌声传来,于是循声而去,走到了鼓楼边...
    经典_cj阅读 168评论 0 0