美文网首页
iOS UILabel设置行间距和字间距并计算高度

iOS UILabel设置行间距和字间距并计算高度

作者: 少年未老心已荒 | 来源:发表于2017-09-04 15:48 被阅读0次


    #define UILABEL_LINE_SPACE6

    #define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height

    //给UILabel设置行间距和字间距

    -(void)setLabelSpace:(UILabel*)label withValue:(NSString*)str withFont:(UIFont*)font {

    NSMutableParagraphStyle*paraStyle = [[NSMutableParagraphStylealloc]init];

    paraStyle.lineBreakMode=NSLineBreakByCharWrapping;

    paraStyle.alignment=NSTextAlignmentLeft;

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

    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:@1.0f

    };

    NSAttributedString*attributeStr = [[NSAttributedStringalloc]initWithString:strattributes:dic];

    label.attributedText= attributeStr;

    }

    //计算UILabel的高度(带有行间距的情况)

    -(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width {

    NSMutableParagraphStyle*paraStyle = [[NSMutableParagraphStylealloc]init];

    paraStyle.lineBreakMode=NSLineBreakByCharWrapping;

    paraStyle.alignment=NSTextAlignmentLeft;

    paraStyle.lineSpacing=UILABEL_LINE_SPACE;

    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:@1.5f

    };

    CGSizesize = [strboundingRectWithSize:CGSizeMake(width,HEIGHT)options:NSStringDrawingUsesLineFragmentOriginattributes:diccontext:nil].size;

    returnsize.height;

    }

    相关文章

      网友评论

          本文标题:iOS UILabel设置行间距和字间距并计算高度

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