zoukankan      html  css  js  c++  java
  • 根据字符内容计算宽高度

    根据内容计算宽度

    - (CGFloat)calculateRowWidth:(NSString *)string {  
        NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:17]};  //指定字号  
        CGRect rect = [string boundingRectWithSize:CGSizeMake(0, 30)/*计算宽度时要确定高度*/ options:NSStringDrawingUsesLineFragmentOrigin |  
                       NSStringDrawingUsesFontLeading attributes:dic context:nil];  
        return rect.size.width;  
    }

    根据内容计算高度

    - (CGFloat)calculateRowHeight:(NSString *)string fontSize:(NSInteger)fontSize{  
        NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};//指定字号  
        CGRect rect = [string boundingRectWithSize:CGSizeMake(self.view.width - 30, 0)/*计算高度要先指定宽度*/ options:NSStringDrawingUsesLineFragmentOrigin |  
                       NSStringDrawingUsesFontLeading attributes:dic context:nil];  
        return rect.size.height;  
    }

     二、如果两行或者多行 字符串的时候 设置行间隔  在动态计算高度 如下两段代码

    - (CGFloat)calculateRowHeight:(NSString *)string fontSize:(NSInteger)fontSize strWithWidthX:(CGFloat)widthX
    {
        NSDictionary *dic = [self setParameterWithfloat:5 fontSize:fontSize];
        // 计算高度要先指定宽度
        CGRect rect = [string boundingRectWithSize:CGSizeMake(kUIScreenWidth - widthX, 0) options:NSStringDrawingUsesLineFragmentOrigin |
                       NSStringDrawingUsesFontLeading attributes:dic context:nil];
        return rect.size.height;
    }
    
    //设置行间距
    - (NSDictionary *)setParameterWithfloat:(CGFloat )heightForLineSpacing fontSize:(NSInteger)fontSize
    {
        NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
        paraStyle.lineBreakMode = NSLineBreakByCharWrapping;
        paraStyle.alignment = NSTextAlignmentLeft;
        // 设置行间距
        paraStyle.lineSpacing = heightForLineSpacing;
        // 指定字号
        NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize], NSParagraphStyleAttributeName:paraStyle};
        return dic;
    }
  • 相关阅读:
    mybatis(十)缓存
    mybatis(八)复杂查询
    mybatis(六)分页
    mybatis(九)动态SQL
    mybatis(七)只用注解开发
    mybatis(五) 日志
    log4j.properties 相关配置
    mybatis(四)中可能出现的问题
    MyBatis(三) 配置解析
    IIS 发布 .net core 3.1
  • 原文地址:https://www.cnblogs.com/dujiahong/p/6708721.html
Copyright © 2011-2022 走看看