Swift 3.0将UILabel数字颜色设置为红色的方法

发布时间 - 2026-01-11 00:08:00    点击率:

实现需求

这篇文章源于群友的一个问题:如何把『注:此商品只能整件(12的倍数发货),已选1袋,还差11袋』这段文字中的数字使用红色在 UILabel 中显示?

实现思路

我们可以使用UILabel 的 attribute string 属性,通过正则表达式匹配获取数字的范围,然后添加对应的 attribute。

实现代码

下面是实现代码,使用 swift 3.0 编写:

//根据正则表达式改变文字颜色
func changeTextChange(regex: String, text: String, color: UIColor) -> NSMutableAttributedString
{
 let attributeString = NSMutableAttributedString(string: text)
 do {
  let regexExpression = try NSRegularExpression(pattern: regex, options: NSRegularExpression.Options())
  let result = regexExpression.matches(in: text, options: NSRegularExpression.MatchingOptions(), range: NSMakeRange(0, text.characters.count))
  for item in result {
   attributeString.addAttribute(NSForegroundColorAttributeName, value: color, range: item.range)
  }
 } catch {
  print("Failed with error: \(error)")
 }
 return attributeString
}
let text = "注:此商品只能整件(12的倍数发货),已选1袋,还差11袋"
let renderLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 800, height: 30))
renderLabel.textAlignment = NSTextAlignment.center
renderLabel.backgroundColor = UIColor.lightGray
renderLabel.font = UIFont.boldSystemFont(ofSize: 20)
renderLabel.attributedText = changeTextChange(regex: "\\d+", text: text, color: UIColor.red)

可以把以上这段代码放到 playground 里面运行。

当然,这里可以不使用正则表达式,用其他方法也可以做到,但是正则表达式的做法比较灵活,以后如果有新的需求可以直接修改正则表达式就可以实现。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# swift  # uilabel  # swift3.0  # 富文本  # Swift语言中的一些访问控制设置详解  # Swift UILable 设置内边距实例代码  # Swift、Objective-C、Cocoa混合编程设置指南  # Swift如何为设置中心添加常用功能  # 正则表达式  # 这段  # 这篇文章  # 还差  # 整件  # 可以直接  # 可以使用  # 一个问题  # 谢谢大家  # 可以做到  # 就可以  # 有疑问  # text  # changeTextChange  # cpp  # func  # regex  # String  # NSRegularExpression  # regexExpression 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何批量查询域名的建站时间记录?  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel如何实现API速率限制?(Rate Limiting教程)  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Java垃圾回收器的方法和原理总结  如何用PHP快速搭建CMS系统?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何在宝塔面板中创建新站点?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  php json中文编码为null的解决办法  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  MySQL查询结果复制到新表的方法(更新、插入)  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  微信小程序 五星评分(包括半颗星评分)实例代码  Linux系统命令中tree命令详解  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  如何挑选优质建站一级代理提升网站排名?  网站制作软件有哪些,制图软件有哪些?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何在橙子建站中快速调整背景颜色?  北京网站制作的公司有哪些,北京白云观官方网站?  如何做网站制作流程,*游戏网站怎么搭建?  Java类加载基本过程详细介绍  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  js实现获取鼠标当前的位置  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  公司门户网站制作流程,华为官网怎么做?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何用y主机助手快速搭建网站?  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  详解CentOS6.5 安装 MySQL5.1.71的方法  如何注册花生壳免费域名并搭建个人网站?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何选择PHP开源工具快速搭建网站?  七夕网站制作视频,七夕大促活动怎么报名?  油猴 教程,油猴搜脚本为什么会网页无法显示?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  新三国志曹操传主线渭水交兵攻略  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】