一个label 混搭不同颜色,不同字体的文字.. by 徐
2024-10-03 08:19:16
效果如图箭头所示,只需要一个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特性给文字添加相应的字体,颜色等
最新文章
- 64位WIN7下安装MPICH2
- c#组元(Tuple)的使用
- ExpandableListView二级列表
- 根据配置文件加载js依赖模块(JavaScript面试题)
- VC包含目录、附加依赖项、库目录及具体设置
- MVC 返回图片
- logback详细配置(三)
- 链表C++模板实现
- Enum 枚举
- Ubuntu12.04安装insight-6.8
- php知识--递归
- 数列的前N项之和
- servlet第1讲初识
- RAC和单节点数据库的区别有哪些?RAC最有用的功能是什么?
- 41.Odoo产品分析 (四) – 工具板块(10) – 问卷(1)
- TRIO-basic指令--九九乘法表demo
- Golang 入门~~基础知识
- IO相关1(io类/流状态)
- SEO-搜索引擎优化
- 多线程学习笔记八之线程池ThreadPoolExecutor实现分析