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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。