资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

iOS利用NSAttributeString实现不同颜色大小显示的方法-创新互联

前言

成都创新互联-专业网站定制、快速模板网站建设、高性价比沂源网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沂源网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沂源地区。费用合理售后完善,十多年实体公司更值得信赖。

最近开发需求遇到一个比较简单但又棘手的问题.先看需求

iOS利用NSAttributeString实现不同颜色大小显示的方法

一个UILabel显示不同大小颜色的字符串,当然我们首先的想到属性字符串,但是注意: 我们这里要处理国际化完成的字符串也就是说:

必须在国际化完成以后才能追加我们的逻辑,而不是一上来就加属性字符串

比如: 2分14秒 or 2min14secs

也就是给我们的是一个 "2分14秒"字符串 我们需要匹配range来修改或者替换. 带着这个疑问开始今天的文章?

实现思路

孔圣贤有云:”举一隅不以三隅反,则不复也。”

出自《论语·第七章·述而篇》

为了不愧对圣贤对我的期待我把 这个问题定位升级成 4个等级

  • Level 1 最优解,时间复杂度最低,效率最高
  • Level 2 非最优解,时间复杂度最低,效率高
  • Level 3 都一般
  • Level 4 简单粗暴

我想到了以下至少两种方法

  • 通过计算出来的时间 eg: 分 秒 字符串 range去国际化处理完的字符串去匹配修改
  • 用正则匹配数字
  • 用谓词匹配数字
  • level4太业余了不敢想向一个工作好几年的开发者还写出这么打脸的代码

准备工作

在工程中拖拽了一个label

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *label;
@end
@implementation ViewController
- (void)viewDidLoad {
 [super viewDidLoad];
 
 //调用
 NSAttributedString *resultTime = [self formattedCurrentTime:133];
 self.label.attributedText = resultTime;
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:iOS利用NSAttributeString实现不同颜色大小显示的方法-创新互联
文章转载:http://cdkjz.cn/article/pecgi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220