zoukankan      html  css  js  c++  java
  • frame方式布局一段文子,设置宽高

    计算一段文字的宽高

    /**
     *  计算一段文字的宽高
     *
     *  @param size       这段文字的最大宽高
     *  @param options    NSStringDrawingUsesLineFragmentOrigin
     *  @param attributes 文字的字体属性
     *  @param context    nil
     *
     *  @return 返回的是 CGRect 类型,frame
     */
    - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
    

    第一种方法计算文字高度过时的方法

        //  首先设置文字的宽和高
        CGFloat textW = ?;
        CGSize textMaxWH = CGSizeMake(textW, ?);
        //设置文字的行数 设为0->会自动换行
        text_label.numberOfLines = 0;
        CGFloat textH = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:textMaxWH].height;
    

    第二种方法计算文字高度

        //  首先设置文字的宽和高
        CGFloat textW = ?;
        CGSize textMaxWH = CGSizeMake(textW, ?);
        //设置文字的行数 设为0->会自动换行
        text_label.numberOfLines = 0;
        //设置内部文字的字体属性
        NSDictionary *attr = @{
                                NSFontAttributeName : [UIFont systemFontOfSize:14]
                                };
        CGFloat textH = [text boundingRectWithSize:textMaxWH options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size.height;
    

    计算一句文字的宽度

        //设置内部文字的字体属性
        NSDictionary *attr = @{NSFontAttributeName:[UIFont systemFontOfSize:17]};
        CGFloat textW = [text sizeWithAttributes:attr].width;
  • 相关阅读:
    Linux内核TSS的使用
    DPL, CPL及RPL之间的关系
    Linux内存管理(深入理解Linux内核)
    Windows下安装PIL进行图像处理
    内存Zone中的pageset成员分析
    导出符号的意义
    GDI及Windows的消息机制
    kmalloc vs vmalloc
    Linux Kernel Development有关内存管理
    STL sort
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/4619964.html
Copyright © 2011-2022 走看看