一个label 混搭不同颜色,不同字体的文字.. by 徐

效果如图箭头所示,只需要一个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特性给文字添加相应的字体,颜色等

posted @ 2015-06-19 15:39  sixindev  阅读(680)  评论(0编辑  收藏  举报