zoukankan      html  css  js  c++  java
  • UILabel设置行间距和字间距并计算高度-b

    #define UILABEL_LINE_SPACE 6

    #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;

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

        NSDictionary *dic =@{NSFontAttributeName:font,NSParagraphStyleAttributeName:paraStyle,NSKernAttributeName:@1.5f
    };

        

        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
    };

        

        CGSize size = [strboundingRectWithSize:CGSizeMake(width,HEIGHT) options:NSStringDrawingUsesLineFragmentOriginattributes:dic context:nil].size;

        return size.height;

    }

  • 相关阅读:
    转载:AAC编解码概述
    转载:ADTS header
    wcf寄宿在iis上的跨域访问问题【不止是添加跨域文件】
    转 http 分析工具
    时间管理1
    关于silverlight和Wcf分布式部署注意问题(收藏夹)
    c#修改xml文件
    关于在线编辑的异常
    创业文摘5--从程序员转向企业家的10个建议
    silverlight 后台代码生成gridview
  • 原文地址:https://www.cnblogs.com/isItOk/p/5838310.html
Copyright © 2011-2022 走看看