©️ OverlookArt
首页 / AppleDevelop / UIKit / UILabelFeatures

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}