zoukankan      html  css  js  c++  java
  • IOS 计算文字尺寸(UILabel)

     方式1 :普通用法

    
    

    #define  MJNameFont [UIFont systemFontOfSize:14]


    /*
    * * 计算文字尺寸 * * @param text 需要计算尺寸的文字 * @param font 文字的字体 * @param maxSize 文字的最大尺寸 */ - (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize { NSDictionary *attrs = @{NSFontAttributeName : font};
       // 字体占用屏幕的宽度和高度
    return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size; }

    调用方法 1.

       // 文字的字体
        CGSize nameSize = [self sizeWithText:self.status.name font:MJNameFont maxSize:CGSizeMake(MAXFLOAT, MAXFLOAT)];
    
    CGFloat nameX
    = CGRectGetMaxX(self.iconView.frame) + padding; CGFloat nameY = iconY + (iconH - nameSize.height) * 0.5; self.nameView.frame = CGRectMake(nameX, nameY, nameSize.width, nameSize.height);

    方式 2.

    创建一个扩展NSString类


    #import
    "NSString+Extension.h" @implementation NSString (Extension)

    /**

     *  返回字符串所占用的尺寸

     *

     *  @param font    字体

     *  @param maxSize 最大尺寸

     */

    - (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize
    {
        NSDictionary *attrs = @{NSFontAttributeName : font};
        //    return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
        
        return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
    }
    @end

    调用

        //文字计算的最大尺寸
        CGSize textMaxSize=CGSizeMake(150, MAXFLOAT);
        //文字计算出来的真实尺寸(按钮内部label的尺寸)
        CGSize textRealSize=[message.text sizeWithFont:MJTextFont maxSize:textMaxSize];
        
    //    CGSize textSize=[self sizeWithText:message.text font:MJTextFont maxSize:textMaxSize];
    
        // 按钮最终的真实尺寸
        CGSize textBtnSize = CGSizeMake(textRealSize.width + MJTextPadding * 2, textRealSize.height + MJTextPadding * 2);
  • 相关阅读:
    实用的css3小实例---1、卡片效果
    CSS3疑难问题---1、px、em、rem的区别
    心得体悟帖---200106(录课本质)(工具人)
    心得体悟帖---200105(心性不够容易失去)
    心得体悟帖---200105(legend3做好升段)(还不够厉害)
    心得体悟帖---200104(每天运动)(危急存亡)
    webstorm2019.2永久破解教程(亲测有效)
    范仁义css3课程---6、文本样式1
    范仁义css3课程---7、文本2(css3文本)
    css文本样式总结
  • 原文地址:https://www.cnblogs.com/liuwj/p/6475239.html
Copyright © 2011-2022 走看看