iOS之动态计算文字的高度
+ (CGSize)boundingALLRectWithSize:(NSString *)txt Font:(UIFont *)font Size:(CGSize)size { NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:txt]; NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; [style setLineSpacing:2.0f];//切记LineSapcing >= 2,不然会显示不全 [attributedString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, [txt length])]; CGSize realSize = CGSizeZero; #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 CGRect textRect = [txt boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font, NSParagraphStyleAttributeName:style} context:nil]; realSize = textRect.size; #else realSize = [txt sizeWithFont:font constrainedToSize:size]; #endif realSize.width = ceilf(realSize.width); realSize.height = ceilf(realSize.height); return realSize; }
调用:float strHeight = [Util boundingALLRectWithSize:str Font:[UIFont systemFontOfSize:14] Size:CGSizeMake(SCREEN_WIDTH-24, MAXFLOAT)].height;