UILabel行间距及其用法

看了很多别人写的NSMutableAttributedString,今天自己把NSMutableAttributedString用法总结一次

创建一个helper帮助类,便于迅速调用 下面是帮助类中的 实现方法

//传入值 labStr文本内容, spacing行距, x y起始点坐标

+ (UILabel *)getLinesSpacing:(NSString *)labStr spacing:(float)spacing withX:(float)x withY:(float)y{

    UILabel *cLabel = [UILabelnew];


    NSString * cLabelString = labStr;

    cLabel.numberOfLines = 0;

    

    NSMutableAttributedString * attributedString = [[NSMutableAttributedStringalloc]initWithString:cLabelString];

    

    //此处只有一个paragraphStyle,每行的间距就一样,可以设置多个,设置成不同的行间距,

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc]init];

    [paragraphStyle setLineSpacing:spacing];

    

    //此处可给不同的属性,不同的值,不同的range或者string 实现不同的效果,如,一行中某个字体颜色不同,

    /**

     * NSFontAttributeName 设置不同的字体大小

     *NSForegroundColorAttributeName 设置不同的字体颜色

     *NSParagraphStyleAttributeName 设置不同的行间距

     *  value 需要给的值

     * rangge 这个样式所在label中包含的范围

    */

    [attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0, [cLabelStringlength])];

    

    [cLabel setAttributedText:attributedString];

    [cLabel sizeToFit];

    

    cLabel.lineBreakMode =NSLineBreakByTruncatingTail;

    CGSize maximumLabelSize = CGSizeMake(100, 9999);//labelsize的最大值

    //关键语句

    CGSize expectSize = [cLabel sizeThatFits:maximumLabelSize];

    //设置label的宽高

    cLabel.frame = CGRectMake(x, y, expectSize.width, expectSize.height);

    

    return cLabel;

}


帮助类中的方法已写好,下面是调用

    //行间距10起始点位置 2074

    UILabel *labe = [LabelHelpergetLinesSpacing:@"第一行\n第二行\n第三行"spacing:10withX:20withY:74];

    

    labe.font = [UIFontsystemFontOfSize:16];

    

    [self.viewaddSubview:labe];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值