需求:
后台返回一个字符串"已经连续12天签到", 字符串中的数字要设置粗体&红色.
代码:
let str = "已经连续12天签到"
let nonDigits = CharacterSet.decimalDigits.inverted
let numStr = str.trimmingCharacters(in: nonDigits)
let range = (str as NSString).range(of: numStr)
let attributes: [NSAttributedStringKey : Any] = [.font : UIFont.boldSystemFont(ofSize: 17),
.foregroundColor : UIColor.red]
let atr = NSMutableAttributedString(string: str)
atr.addAttributes(attributes, range: range)
self.lab.attributedText = atr
同样, 小数也是可以的.
但是, 如果字符串中出现多个数字, 就会出现这种情况: