我們在開發(fā)中遇到過不少需要同一個Label,展示不同文字的顏色和字體
例如:Label的文字為@“獲取2244獎勵金”,2244數(shù)量為后臺返回的數(shù)據(jù),需要改變2244文字顏色為紅色,字號大小為15,其他字體顏色為白色,字號大小為12
其實(shí)很容易實(shí)現(xiàn),看代碼
//首先只需要創(chuàng)建一個UILabel就可以了,不要再創(chuàng)建很多個進(jìn)行拼接了
UILabel * titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 0,100, 40)];
//既然要設(shè)置2244文字顏色為紅色,其他字體顏色為白色,那么就首先設(shè)置全部字體顏色為白色,之后再修改2244字體顏色為紅色
titleLabel.textColor=[UIColor whiteColor];
//字體大小同樣道理
titleLabel.font=[UIFont fontWithName:@"PingFang SC" size: 12];
//重點(diǎn)來了,首先需要設(shè)置第一個字符串
NSString * str1=@"最高可得";
//獲取第一個字符串的長度
long len1=[str1 length];
//設(shè)置第二個字符串,他是后臺返回的整數(shù)
NSString * shuliangStr=[NSString stringWithFormat:@"%d",2345];
//獲取第二個字符串的長度
long len2=[shuliangStr length];
//拼接最終的整體的字符串
NSString * str =[NSString stringWithFormat:@"最高可得 %@ 獎勵金",shuliangStr];
//創(chuàng)建NSMutableAttributedString對象來實(shí)現(xiàn)富文本
NSMutableAttributedString * str2 =[[NSMutableAttributedString alloc]initWithString:str];
//設(shè)置指定文字顏色,len1代表開始變顏色的起始位置,len2表示改變的長度
[str2 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(len1, len2)];
//設(shè)置指定文字字號大小,len1和len2同理
[str2 addAttribute:NSForegroundColorAttributeName value:[UIFont fontWithName:@"PingFang SC" size: 15] range:NSMakeRange(len1, len2)];
//最終設(shè)置titleLabel的富文本為str2
titleLabel.attributedText=str2;
//然后把titleLabel添加到view上
[self.view addSubview:titleLabel];
到這里就完成了,可以根據(jù)自己的需要酌情縮寫一下,我這樣寫完全是為了更加容易理解一下,看看效果,完美??!如果有什么更加簡單的方法,歡迎大佬留言。