©️ OverlookArt
首页 / AppleDevelop / UIKit / UILabel

UILabel

文本高亮

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