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模型事件监听与解耦开发【指南】

