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

    }

  • 相关阅读:
    laravel的workflow流程插件
    [php]laravel框架容器管理的一些要点
    laravel 自带消息notification通知
    laravel5.5的定时任务详解(demo)
    Laravel核心代码学习
    laravel 加载指定版本的mongodb
    Linux安装Composer
    composer全量镜像使用方法
    laravel在github地址
    node anyproxy ssi简易支持
  • 原文地址:https://www.cnblogs.com/isItOk/p/5838310.html
Copyright © 2020-2023  润新知