一个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特性给文字添加相应的字体,颜色等

一个label 混搭不同颜色,不同字体的文字.. by 徐的更多相关文章
- iOS中动态计算不同颜色、字体的文字高度
在改项目bug的时候,有一个问题动态计算label的高度,前开发者竟然用字符串长度除以14.16这样的常量来计算是否换行,结果cell的高度问题非常严重. 因为label内容里有部分关键字是要另一种颜 ...
- label显示不同颜色的字体
NSString *contentSrt = [NSString stringWithFormat:@"%@ (%@)",categoryModel.categoryName, c ...
- 一个label两种颜色,一个label两种字体
-(void)addLabel{ UILabel *label = [[UILabel alloc]init]; label.backgroundColor = [UIColor grayColor] ...
- java POI excel 导出复合样式(一个单元格两个字体)
前言:java poi 导出 excel 时,需要设置一个单元格有多个字体样式,有点类似于富文本. 想要达到的效果(一个单元格里): 我使用的 poi 版本是 <dependency> & ...
- JAVA使用外部字体将文字生成图片,并使用FontMetrics居中文字
需求: 1.用户输入文字,根据外部字体,将文字生成图片 2.输出的文字需要居中在图片中显示 遇到的问题: 1.如何导入外部字体?使用Java的Font类,所有的字体都是系统安装过的 2.每次用户输入的 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
- 设置一个label显示多种颜色,多种字体大小
UILabel* label = [[UILabel alloc] init]; label.frame = CGRectMake(0, 100, 200, 100); label.textColor ...
- 一个label 里面 显示中文和英文不同颜色
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor yellowColor]; ...
- 修改一个Label上字体的大小(富文本)
假如修改上面的Label上价格30000的大小,那么需要用到富文本 上代码 // 字符串30000 NSString * priceNumber = @"30000"; [pric ...
随机推荐
- Error: Cannot find module '@dcloudio/uni-cli-i18n' 解决方案
这个错误是因为node_modules缺少了 '@dcloudio/uni-cli-i18n' 以下是错误信息 解决方案: yarn add -D @dcloudio/uni-cli-i18n ...
- RabbitMQ基础教程系列
Ubuntu16.04下,erlang安装和rabbitmq安装步骤 Ubuntu16.04下,rabbimq集群搭建 C# .net 环境下使用rabbitmq消息队列 .net core使用rab ...
- linux系统内置函数
一.action函数 在/etc/init.d/functions中有一个系统自带的函数 source /etc/init.d/functions #启用系统函数脚本 action "输出 ...
- vue - 搭建 webapp 自适应项目-使用 vant 组件库 并 可自动调节大小
1.创建个vue 项目,这里不详细写怎么创建,参考 vue - 指令创建 vue工程 - 岑惜 - 博客园 (cnblogs.com) https://www.cnblogs.com/c2g52013 ...
- NIO【同步非阻塞io模型】关于 NIO socket 的详细总结【Java客户端+Java服务端 + 业务层】【可以客户端间发消息】
1.前言 以前使用 websocket来实现双向通信,如今深入了解了 NIO 同步非阻塞io模型 , 优势是 处理效率很高,吞吐量巨大,能很快处理大文件,不仅可以 做 文件io操作, 还可以做sock ...
- js几种常见排序的实现
1. 冒泡排序 定义: 比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个 数据交换. 这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第 ...
- CentOS6.4安装Zookeeper-3.4.12图解教程
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6595380916590215683/ 安装工具 VMware_workstation_full_12.5.2 Ce ...
- Object.keys()方法 返回对象属性数组
MDN语法 Object.keys(obj) 参数obj:要返回其枚举自身属性的对象. 返回值:一个表示给定对象的所有可枚举属性的字符串数组. 1.传入一个对象,返回的的是所有属性值 var obj2 ...
- javascript中什么时候要用\来转义
1.定义字符串的单引号或双引号里的同符号或字符串内回车换行,比如A: a = "<a href=\"...\">a</a>"; B: a ...
- SpringBoot2.4.2下配置Lettuce使用Redis
1. Springboot2.4.2下对Redis的基础集成 1.1 maven添加依赖 <dependency> <groupId>org.springframework.b ...