更改行间距及获取对应行间距控件的高度

/**

*  获得高度

*

*  @param font  字体

*  @param HG    行间距

*  @param width 控件高度

*

*  @return 高度

*/

- (CGFloat)getHeight:(UIFont *)font HG:(CGFloat)HG width:(CGFloat)width{

NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];//段落样式

/**

label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。

label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。

label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方式省略,显示尾部文字内容。

label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容以……方式省略,显示头尾的文字内容。

label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容以……方式省略,显示头的文字内容。

label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显示,后面部分省略不显示。

*/

paraStyle.lineBreakMode = NSLineBreakByCharWrapping;

/**

* 排列方式:NSTextAlignment和firstLineHeadIndent.

*/

paraStyle.alignment = NSTextAlignmentLeft;

paraStyle.lineSpacing = HG;//行间距

paraStyle.hyphenationFactor = 1.0;

paraStyle.firstLineHeadIndent = 0.0;//首行缩进几个

paraStyle.paragraphSpacingBefore = 0.0;//段首空间

paraStyle.headIndent = 0;

paraStyle.tailIndent = 0;

NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@0.0f

};

CGSize size = [self boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

return size.height;

}

首先介绍一下NSMutableParagraphStyle  意思就像他的名字:段落样式.是一种富文本样式.当然小编也搜索到一个三方是重新包装的NSAttachmentAttributeName和NSMutableParagraphStyle:TTTAttributedLabel.有时间大家可以研究下.下面是设置行高的方法:

- (void)setHG:(CGFloat)height{

NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];

paraStyle.lineBreakMode = NSLineBreakByCharWrapping;

paraStyle.alignment = NSTextAlignmentLeft;

paraStyle.lineSpacing = height; //设置行间距

paraStyle.hyphenationFactor = 1.0;

paraStyle.firstLineHeadIndent = 0.0;

paraStyle.paragraphSpacingBefore = 0.0;

paraStyle.headIndent = 0;

paraStyle.tailIndent = 0;

//设置字间距 NSKernAttributeName:@1.5f

NSDictionary *dic = @{NSFontAttributeName:self.font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@0.0f

};

NSAttributedString *attributeStr = [[NSAttributedString alloc] initWithString:self.text attributes:dic];

self.attributedText = attributeStr;

}

你可能感兴趣的:(更改行间距及获取对应行间距控件的高度)