iOS利用NSAttributeString实现不同颜色大小显示的方法-创新互联
前言
成都创新互联-专业网站定制、快速模板网站建设、高性价比沂源网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式沂源网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖沂源地区。费用合理售后完善,十多年实体公司更值得信赖。最近开发需求遇到一个比较简单但又棘手的问题.先看需求
一个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实现不同颜色大小显示的方法-创新互联
URL地址:http://lswzjz.com/article/pecgi.html