UILabelFeatures
UILabel 功能扩展
高亮显示文字
1import UIKit
2extension UILabel {
3 /// 高亮显示文字
4 /// - Parameters:
5 /// - subString: 需要高亮显示的文字
6 /// - color: 高亮显示的颜色
7 /// - Returns: 返回可修改的属性字符串
8 func highlight(SubString subString:String, Color color: UIColor) -> NSMutableAttributedString? {
9 /// 如果没有文本 返回nil
10 guard let textStr = self.text else { return nil }
11
12 var mastr:NSMutableAttributedString!
13 if let aStr = self.attributedText {
14 mastr = NSMutableAttributedString(attributedString: aStr)
15 }else{
16 mastr = NSMutableAttributedString(string: textStr, attributes: [.font:self.font, .foregroundColor:self.textColor])
17 }
18
19 var range = (mastr.string as NSString).range(of: subString)
20 /// 做一个遍历,将所有的文字都配置高亮的颜色
21 while range.location != NSNotFound {
22 mastr.addAttribute(.foregroundColor, value: color, range: range)
23 let nextRange = NSRange(location: range.location + range.length, length: mastr.length - (range.location + range.length))
24 range = (mastr.string as NSString).range(of: subString, options: [], range: nextRange)
25 }
26 return mastr
27 }
28}