• 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);
  • 相关阅读:
    hdu5914 Triangle 【贪心】
    2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
    hdu 4034 【floyed变形】
    A
    hdu 2553 N皇后问题【dfs】
    【算法入门经典】7.4回溯法【八皇后问题】
    用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示-面试题
    Firebug控制台详解
    CSS实现兼容性的渐变背景(gradient)效果
    jQuery学习——入门jQuery选择器之层次选择器
  • 原文地址:https://www.cnblogs.com/liuwj/p/6475239.html
Copyright © 2020-2023  润新知