zoukankan      html  css  js  c++  java
  • 在固定宽度 下计算出实际的行高

    //根据字符串内容的多少  在固定宽度 下计算出实际的行高

    - (CGFloat)HelperTextHeightFromTextString:(NSString *)text (CGFloat)textWidth fontSize:(CGFloat)size

    {

        if ([self heperGetCurrentIOS] >= 7.0) {

            //iOS7之后

            /*

             第一个参数: 预设空间 宽度固定  高度预设 一个最大值

             第二个参数: 行间距 如果超出范围是否截断

             第三个参数: 属性字典 可以设置字体大小

             */

    //        NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:size]};

    //        CGRect rect = [text boundingRectWithSize:CGSizeMake(textWidth, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil];

            NSDictionary *dict=@{NSFontAttributeName: [UIFont systemFontOfSize:size]};

            CGRect rect = [text boundingRectWithSize:CGSizeMake(textWidth, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil];

            

            

            

            //返回计算出的行高

            return rect.size.height;

            

        }else {

            //iOS7之前

            /*

             1.第一个参数  设置的字体固定大小

             2.预设 宽度和高度 宽度是固定的 高度一般写成最大值

             3.换行模式 字符换行

             */

            CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:size] constrainedToSize:CGSizeMake(textWidth, MAXFLOAT) lineBreakMode:NSLineBreakByCharWrapping];

            return textSize.height;//返回 计算出得行高

        }

    }

  • 相关阅读:
    UDP的坏处
    进程控制块(Process Control Block, PCB)
    分布式中一些关键概念的解释
    线程池的设计实现
    [原创] 同步、异步、阻塞、非阻塞详解
    常用场景对文件状态的影响
    echo使用说明,参数详解
    Linux下源码安装ffmpeg及ffmpeg的简单使用说明
    127.0.0.1、0.0.0.0和本机IP地址的区别和使用
    链路层的简介和MTU
  • 原文地址:https://www.cnblogs.com/OIMM/p/5095081.html
Copyright © 2011-2022 走看看