/**
* 获得高度
*
* @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;
}
网友评论