美文网首页
iOS 动态计算Label高度(自适应高度) 可设置行间距

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

作者: iOS门三闫 | 来源:发表于2020-08-20 12:15 被阅读0次

//动态计算高度

 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高度(自适应高度) 可设置行间距

      本文链接:https://www.haomeiwen.com/subject/gogqjktx.html