计算文本的高度

计算文本的高度
分两种情况,指定文本只有1行和多行,可以写方法返回字符串的size,options通常使用NSStringDrawingUsesLineFragmentOrigin,这样整个文本将以单行文本的矩形来计算整个文本高度


①文字显示一行

-(CGSize)sizeOneLineText:(NSString *)text font:(UIFont *)font{
    CGSize textSize = [text boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:@{NSFontAttributeName:font}
                                         context:nil].size;
    return textSize;
}

②文字显示多行,需要指定文字宽度

-(CGSize)sizeMultiLineText:(NSString *)text font:(UIFont *)font (CGFloat)width{
    CGSize textSize = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX)
                                     options:NSStringDrawingUsesLineFragmentOrigin
                                  attributes:@{NSFontAttributeName:font}
                                     context:nil].size;
    return textSize;
}

该方法可以用在自定义button内,用来计算text和image的位置

原文地址:https://www.cnblogs.com/Apologize/p/5662865.html