计算UIlabel高度
2018-03-05 本文已影响45人
Torin76
+(CGFloat)getContentHeight:(NSString*)content WithLabelWidth:(CGFloat)labelWidth LabelFont:(UIFont*)font
{
//参考:http://blog.csdn.net/smilebigdear/article/details/70054561
NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
style.lineBreakMode = NSLineBreakByWordWrapping;
style.alignment = NSTextAlignmentLeft;
NSAttributedString *string = [[NSAttributedString alloc]initWithString:content attributes:@{NSFontAttributeName:font, NSParagraphStyleAttributeName:style}];
CGSize size = [string boundingRectWithSize:CGSizeMake(labelWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;
NSLog(@" size = %@", NSStringFromCGSize(size));
// 并不是高度计算不对,我估计是计算出来的数据是 小数,在应用到布局的时候稍微差一点点就不能保证按照计算时那样排列,所以为了确保布局按照我们计算的数据来,就在原来计算的基础上 取ceil值,再加1;
CGFloat height = ceil(size.height) + 1;
return height;
}