UILabel *lab = [[UILabel alloc]init];
lab.frame = CGRectMake(20, 100, 300, 30);
[self.view addSubview:lab];
NSMutableAttributedString *aString;
NSString *integralStr = @"integral";
NSString *archStr = @"material";
NSString *freightStr = @"shipping_fee";
aString = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"合计 积分:%@ 消费券:%@ (运费:%@)",integralStr,archStr,freightStr]];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6, integralStr.length)];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange( integralStr.length + 11, archStr.length)];
lab.frame = CGRectMake(20, 100, 300, 30);
[self.view addSubview:lab];
NSMutableAttributedString *aString;
NSString *integralStr = @"integral";
NSString *archStr = @"material";
NSString *freightStr = @"shipping_fee";
aString = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"合计 积分:%@ 消费券:%@ (运费:%@)",integralStr,archStr,freightStr]];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(6, integralStr.length)];
[aString addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange( integralStr.length + 11, archStr.length)];
lab.attributedText = aString;
效果如图:
如果有时候数字是2位数或者更多,需要让数字显示成红色。给自己mark了一个方法: