美文网首页
UILabel改变行间距,字间距,行间距和字间距.

UILabel改变行间距,字间距,行间距和字间距.

作者: 你忘记的无名人 | 来源:发表于2018-04-25 11:51 被阅读0次

    1.创建UILabel的类别,为什么创建类别不做继承,因为不想影响label,哈哈

    2.声明类方法:

    /**

     *  改变行间距

     */

    + (void)changeLineSpaceForLabel:(UILabel*)label WithSpace:(float)space;

    /**

     *  改变字间距

     */

    + (void)changeWordSpaceForLabel:(UILabel*)label WithSpace:(float)space;

    /**

     *  改变行间距和字间距

     */

    + (void)changeSpaceForLabel:(UILabel*)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace;

    3.实现类方法

    /**

     改变label的行间距

     */

    + (void)changeLineSpaceForLabel:(UILabel*)label WithSpace:(float)space {

        NSString*labelText = label.text;

        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText];

        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

        [paragraphStylesetLineSpacing:space];

        [attributedStringaddAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];

        label.attributedText= attributedString;

        [labelsizeToFit];

    }

    /**

     *  改变字间距

     */

    + (void)changeWordSpaceForLabel:(UILabel*)label WithSpace:(float)space {

        NSString*labelText = label.text;

        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(space)}];

        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

        [attributedStringaddAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];

        label.attributedText= attributedString;

        [labelsizeToFit];

    }

    //改变行间距和字间距

    + (void)changeSpaceForLabel:(UILabel*)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace {

        NSString*labelText = label.text;

        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(wordSpace)}];

        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

        [paragraphStylesetLineSpacing:lineSpace];

        [attributedStringaddAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];

        label.attributedText= attributedString;

        [labelsizeToFit];

    }

    4.需要注意的是,一定要确保调用方法的label的text不是空!!

    相关文章

      网友评论

          本文标题:UILabel改变行间距,字间距,行间距和字间距.

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