效果如图箭头所示,只需要一个label就可以做到不同颜色或不同字体的效果
1 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 80, 150, 30)]; 2 label.numberOfLines = 0; 3 [self.view addSubview:label]; 4 //固定文字 此文字为 黑色 16号 5 NSString *staticStr = @"好评度:"; 6 7 //动态文字 此文字为 红色 16号 粗体 8 NSString *dyStr = @"96\%"; 9 10 //完整要显示的文字 11 NSString *tmpStr = [NSString stringWithFormat:@"%@%@",staticStr,dyStr]; 12 13 //创建一个可变的attribute文字 14 NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:tmpStr]; 15 16 //获得固定文字的范围 17 NSRange staticStrRange = [tmpStr rangeOfString:staticStr]; 18 //设置固定文字的字体 19 //颜色 20 [str addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:staticStrRange]; 21 //字号 22 [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:staticStrRange]; 23 24 //获得动态文字的范围 25 NSRange dyStrRange = [tmpStr rangeOfString:dyStr]; 26 //设置动态文字的字体 27 //颜色 28 [str addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:dyStrRange]; 29 //字号 30 [str addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:16] range:dyStrRange]; 31 //label设置attribute文字 32 label.attributedText = str;
原理:label有attribute文字,通过arrtibute特性给文字添加相应的字体,颜色等