iOS UILabel多色文本实现
UILabel 的多色文本显示技巧,蛮实用的一个小功能。你有没有遇到过那种一个标签里要显示不同颜色的文字,比如“成功”用绿色,“失败”用红色?其实用NSMutableAttributedString
就能轻松搞定。
iOS 的UILabel
虽然默认只支持一种颜色,但你可以通过富文本把想要高亮的关键词单独拿出来一下。方法也简单,先用NSMutableAttributedString
包住整段文字,再对你想改颜色的部分添加.foregroundColor
属性,把它赋值给label.attributedText
就行了。
像这样:
let text = "这是一个例子,其中某些部分需要是红色,而其他部分是黑色。"
let attributedString = NSMutableAttributedString(string: text)
let redRange = (text as NSString).range(of: "红色")
attributedString.addAttributes([.foregroundColor: UIColor.red], range: redRange)
label.attributedText = attributedString
如果你想加点玩法,比如动态设置、按条件变色,那就可以用enumerateAttribute(_:in:options:using:)
来做遍历修改,灵活度挺高。
顺便说一下,压缩包ZiTiLabel
里有完整示例,直接跑项目就能看到效果,新手也能轻松上手。如果你经常在做消息展示、关键词高亮这种场景,不妨试试看这个方案。
如果你还想深入了解NSMutableAttributedString
的用法,推荐你看看这篇文章,讲得挺细的。
68.67KB
文件大小:
评论区