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;
原文地址:https://www.cnblogs.com/ShaoYinling/p/4619964.html