效果:
- 在当前类或者当前类的父类中添加如下方法:
/**
设置固定行间距文本
@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];
- 在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~