IOS 开发 改变UILabel中间文字的颜色或者大小

我们在开发中遇到过不少需要同一个Label,展示不同文字的颜色和字体

例如:Label的文字为@“获取2244奖励金”,2244数量为后台返回的数据,需要改变2244文字颜色为红色,字号大小为15,其他字体颜色为白色,字号大小为12

其实很容易实现,看代码

//首先只需要创建一个UILabel就可以了,不要再创建很多个进行拼接了

UILabel * titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 0,100, 40)];

//既然要设置2244文字颜色为红色,其他字体颜色为白色,那么就首先设置全部字体颜色为白色,之后再修改2244字体颜色为红色

titleLabel.textColor=[UIColor whiteColor];

//字体大小同样道理

titleLabel.font=[UIFont fontWithName:@"PingFang SC" size: 12];

//重点来了,首先需要设置第一个字符串

NSString * str1=@"最高可得";

//获取第一个字符串的长度

long len1=[str1 length];

//设置第二个字符串,他是后台返回的整数

NSString * shuliangStr=[NSString stringWithFormat:@"%d",2345];

//获取第二个字符串的长度

long len2=[shuliangStr length];

//拼接最终的整体的字符串

NSString * str =[NSString stringWithFormat:@"最高可得 %@ 奖励金",shuliangStr];

//创建NSMutableAttributedString对象来实现富文本

NSMutableAttributedString * str2 =[[NSMutableAttributedString alloc]initWithString:str];

//设置指定文字颜色,len1代表开始变颜色的起始位置,len2表示改变的长度

[str2 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(len1, len2)];

//设置指定文字字号大小,len1和len2同理

[str2 addAttribute:NSForegroundColorAttributeName value:[UIFont fontWithName:@"PingFang SC" size: 15] range:NSMakeRange(len1, len2)];

//最终设置titleLabel的富文本为str2

titleLabel.attributedText=str2;

//然后把titleLabel添加到view上

[self.view addSubview:titleLabel];

到这里就完成了,可以根据自己的需要酌情缩写一下,我这样写完全是为了更加容易理解一下,看看效果,完美!!如果有什么更加简单的方法,欢迎大佬留言。

你可能感兴趣的:(IOS 开发 改变UILabel中间文字的颜色或者大小)