// // NSMutableAttributedString+Extension.swift // QuickSearchLocation // // Created by Destiny on 2024/11/26. // import Foundation import UIKit import YYText // MARK: - 一、基本的链式编程 扩展 public extension NSMutableAttributedString { // MARK: 1.1、设置 删除线 /// 设置 删除线 /// - Returns: 返回自身 @discardableResult func strikethrough() -> Self { let range = NSMakeRange(0, length) addAttributes([.strikethroughStyle: NSUnderlineStyle.single.rawValue], range: range) return self } // MARK: 1.2、设置富文本文字的颜色 /// 设置富文本文字的颜色 /// - Parameter color: 富文本文字的颜色 /// - Returns: 返回自身 @discardableResult func color(_ color: UIColor) -> Self { let range = NSMakeRange(0, length) addAttributes([.foregroundColor: color], range: range) return self } // MARK: 1.3、设置富文本文字的颜色(十六进制字符串颜色) /// 设置富文本文字的颜色(十六进制字符串颜色) /// - Parameter hexString: (十六进制字符串颜 /// - Returns: 返回自身 @discardableResult func color(_ hexString: String) -> Self { let range = NSMakeRange(0, length) addAttributes([.foregroundColor: UIColor.hexStringColor(hexString: hexString)], range: range) return self } // MARK: 1.4、设置富文本文字的大小 /// 设置富文本文字的大小 /// - Parameter font: 字体的大小 /// - Returns: 返回自身 @discardableResult func font(_ font: CGFloat) -> Self { let range = NSMakeRange(0, length) addAttributes([.font: UIFont.textF(font)], range: range) return self } // MARK: 1.5、设置富文本文字的 UIFont /// 设置富文本文字的 UIFont /// - Parameter font: UIFont /// - Returns: 返回自身 @discardableResult func font(_ font: UIFont) -> Self { let range = NSMakeRange(0, length) addAttributes([.font: font], range: range) return self } // MARK: 1.6、设置富文本文字的间距 /// 设置富文本文字的间距 /// - Parameter wordSpaceing: 字体之间的间距 /// - Returns: 返回自身 @discardableResult func kern(_ wordSpaceing: CGFloat) -> Self { let range = NSMakeRange(0, length) addAttributes([.kern: wordSpaceing], range: range) return self } // MARK: 1.7、设置段落的样式 /// 设置段落的样式 /// - Parameter style: 样式 /// - Returns: 返回自身 @discardableResult func paragraphStyle(_ style: NSMutableParagraphStyle) -> Self { let range = NSMakeRange(0, length) addAttributes([.paragraphStyle: style], range: range) return self } }