计算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;

}

上一篇 下一篇

猜你喜欢

热点阅读