iOS 动态计算Label高度(自适应高度) 可设置行间距

//动态计算高度

 NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:self.contentL.text];

  NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

  paragraphStyle.lineSpacing=5.0;// 调整行间距

    NSRangerange =NSMakeRange(0, [self.contentL.textlength]);

      [attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:range];

 self.contentL.attributedText= attributedString;

 CGSize size = [self workOutSizeHeightWithString:self.contentL.text fontSize:[UIFont systemFontOfSize:12] value:[NSValue valueWithCGSize:CGSizeMake(SWIDTH-30, MAXFLOAT)] lineSpace:5.0];

   self.contentL.height= size.height;

- (CGSize)workOutSizeHeightWithString:(NSString*)string fontSize:(UIFont*)fontSize value:(NSValue*)value lineSpace:(CGFloat)space{


    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

    paragraphStyle.lineSpacing= space;  // 段落高度

    NSMutableAttributedString *attributes = [[NSMutableAttributedString alloc] initWithString:string];

    [attributes addAttribute:NSFontAttributeNamevalue:fontSize range:NSMakeRange(0, string.length)];

    [attributes addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, string.length)];

    CGSize size = [attributes boundingRectWithSize:[value CGSizeValue] options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading context:nil].size;

    //    }

    return size;

}

附上demo


你可能感兴趣的:(iOS 动态计算Label高度(自适应高度) 可设置行间距)