设置UILable中的行间距和字间距以及自适应高度,段落首行挤进


先上一张效果图:吐舌头


/****   代码展示   ****/

/**以下方法的参数

 *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啦吐舌头


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值