美文网首页
更改行间距及获取对应行间距控件的高度

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

作者: 面朝对象_春暖花开 | 来源:发表于2016-08-25 10:45 被阅读89次

    /**

    *  获得高度

    *

    *  @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;

    }

    相关文章

      网友评论

          本文标题:更改行间距及获取对应行间距控件的高度

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