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://azwzsj.com/article/pecgi.html