先上一张效果图:
/**** 代码展示 ****/
/**以下方法的参数
*1.内容*2.字体(这里直接给大小)
*3.label的宽高
*4.行间距
*5.字间距
*/
-(CGSize)FontHeightsizeWithText:(NSString *)text TextFont:(UIFont *)font TextMaxSize:(CGSize)size LineSpace:(CGFloat)linespace Wordpace:(CGFloat)wordpace{
//可变的属性文本
NSMutableAttributedString *attributedText=[[NSMutableAttributedString alloc]initWithString:text attributes:@{NSKernAttributeName:@(wordpace)}];
//设置段落样式
NSMutableParagraphStyle *paragraphStyle=[[NSMutableParagraphStyle alloc]init];
paragraphStyle.firstLineHeadIndent=20;//每行段落首行挤进20单位
paragraphStyle.alignment = NSTextAlignmentLeft;
paragraphStyle.maximumLineHeight =30;//设置最大的行高
paragraphStyle.lineSpacing=linespace;//自定义行间距的高度
//给可变的属性字符串 添加段落格式
[attributedText addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
//将带有段落格式的可变的属性字符串给lable.attributedText
self.contentLabel.attributedText = attributedText;
self.contentLabel.lineBreakMode = NSLineBreakByTruncatingTail;//label换行模式
self.contentLabel.numberOfLines=0;
CGSize maxSize=size;
[self.contentLabel sizeToFit];
CGSize labelSize =[self.contentLabel sizeThatFits:maxSize];
return labelSize;
}
然后直接调用方法就行啦
代码展示:
//内容长度(我的是用XIB把label的高度拉成属性)
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentHeight;
//新闻内容的高度(label的高度)
NSString *str=@"你的内容";
self.contentHeight.constant =[self FontHeightsizeWithText:str TextFont:[UIFont systemFontOfSize:15] TextMaxSize:CGSizeMake(kScreenWidth-20, 30) LineSpace:8 Wordpace:1].height;
完毕!!!!
就这么几行代码我就不给demo啦,