UILable显示不同的字体颜色字体大小行间距首行缩进下划线等属性(NSMutableAttributedString)

Posted 徐家汇123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UILable显示不同的字体颜色字体大小行间距首行缩进下划线等属性(NSMutableAttributedString)相关的知识,希望对你有一定的参考价值。

案例1:修改文本字体大小、颜色属性

比如文本展示为姓名和性别,但是我们不能排除姓名会很长,所以此刻的lable宽度我们就不能写死,换句话说lable的宽度根据文本的内容来定

技术分享

我经常用两种方式解决:

1.前面文章已经涉及:lable自适应http://blog.csdn.net/tuwanli125/article/details/51003798

2.就是使用NSMutableAttributedString属性给infoL设置文本

 

 

NSString *infoStr = [NSStringstringWithFormat:@"%@ %@",name,sex];

    NSMutableAttributedString *infoAttStr = [[NSMutableAttributedStringalloc] initWithString:infoStr];

    NSArray *colorArr [email protected][[UIColorcolorWithRed:0/255.0green:168/255.0blue:255/255.0alpha:1.0],[UIColorcolorWithRed:153/255.0green:153/255.0blue:153/255.0alpha:1.0]];

--------修改姓名的颜色,字体大小------

    [infoAttStr addAttribute:NSForegroundColorAttributeNamevalue:colorArr[0]range:NSMakeRange(0,name.length)];

    [infoAttStr addAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:15]range:NSMakeRange(0,name.length)];

--------修改性别的颜色,字体大小------

    [infoAttStr addAttribute:NSFontAttributeNamevalue:[UIFontsystemFontOfSize:12]range:NSMakeRange(name.length+1,sexStr.length)];

    [infoAttStr addAttribute:NSForegroundColorAttributeNamevalue:colorArr[1]range:NSMakeRange(name.length+1,sexStr.length)];

    [self.infoL setAttributedText:infoAttStr];

这样一个文本就可以了,简单快捷

案例2:文本行间距

remindLabel.text = @""(一堆文字,此处省略一万字技术分享)

 

NSMutableAttributedString *attributedString = [[NSMutableAttributedStringalloc]initWithString:remindLabel.text];;

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc]init];

    [paragraphStyle setLineSpacing:9];

paragraphStyle.maximumLineHeight = 60;  //最大的行高

[paragraphStyle setFirstLineHeadIndent:30];//首行缩进 

    [attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0, remindLabel.text.length)];

    remindLabel.attributedText = attributedString;

 

案例3:添加下划线

我给按钮添加下滑线,比如按钮显示文本为电话号码,点击就可以拨打电话

技术分享

 

NSMutableAttributedString *str = [[NSMutableAttributedStringalloc]initWithString:_phoneBtn.titleLabel.text];

    NSRange strRange = {0,[strlength]};

    [str addAttribute:NSUnderlineStyleAttributeNamevalue:[NSNumbernumberWithInteger:NSUnderlineStyleSingle]range:strRange];

    [_phoneBtnsetAttributedTitle:strforState:UIControlStateNormal]

以上是关于UILable显示不同的字体颜色字体大小行间距首行缩进下划线等属性(NSMutableAttributedString)的主要内容,如果未能解决你的问题,请参考以下文章

怎么设置editplus的字体

iOS UILable 高度自适应

Pycharm设置开发模板/字体大小/背景颜色

Android Studio怎么自定义代码注释的颜色

具有相同颜色(不透明度)和不同字体大小的两个文本块出现不同

PhpStorm怎样修改默认的字体和大小