我们在开发中遇到过不少需要同一个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];
到这里就完成了,可以根据自己的需要酌情缩写一下,我这样写完全是为了更加容易理解一下,看看效果,完美!!如果有什么更加简单的方法,欢迎大佬留言。