iOS UILabel 行间距

作者: Sparkle_S | 来源:发表于2017-04-28 18:31 被阅读0次

效果:


设置行间距效果.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~

相关文章

网友评论

    本文标题:iOS UILabel 行间距

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