NSMutableAttributedString+Extension.swift 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // NSMutableAttributedString+Extension.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by Destiny on 2024/11/26.
  6. //
  7. import Foundation
  8. import UIKit
  9. import YYText
  10. // MARK: - 一、基本的链式编程 扩展
  11. public extension NSMutableAttributedString {
  12. // MARK: 1.1、设置 删除线
  13. /// 设置 删除线
  14. /// - Returns: 返回自身
  15. @discardableResult
  16. func strikethrough() -> Self {
  17. let range = NSMakeRange(0, length)
  18. addAttributes([.strikethroughStyle: NSUnderlineStyle.single.rawValue], range: range)
  19. return self
  20. }
  21. // MARK: 1.2、设置富文本文字的颜色
  22. /// 设置富文本文字的颜色
  23. /// - Parameter color: 富文本文字的颜色
  24. /// - Returns: 返回自身
  25. @discardableResult
  26. func color(_ color: UIColor) -> Self {
  27. let range = NSMakeRange(0, length)
  28. addAttributes([.foregroundColor: color], range: range)
  29. return self
  30. }
  31. // MARK: 1.3、设置富文本文字的颜色(十六进制字符串颜色)
  32. /// 设置富文本文字的颜色(十六进制字符串颜色)
  33. /// - Parameter hexString: (十六进制字符串颜
  34. /// - Returns: 返回自身
  35. @discardableResult
  36. func color(_ hexString: String) -> Self {
  37. let range = NSMakeRange(0, length)
  38. addAttributes([.foregroundColor: UIColor.hexStringColor(hexString: hexString)], range: range)
  39. return self
  40. }
  41. // MARK: 1.4、设置富文本文字的大小
  42. /// 设置富文本文字的大小
  43. /// - Parameter font: 字体的大小
  44. /// - Returns: 返回自身
  45. @discardableResult
  46. func font(_ font: CGFloat) -> Self {
  47. let range = NSMakeRange(0, length)
  48. addAttributes([.font: UIFont.textF(font)], range: range)
  49. return self
  50. }
  51. // MARK: 1.5、设置富文本文字的 UIFont
  52. /// 设置富文本文字的 UIFont
  53. /// - Parameter font: UIFont
  54. /// - Returns: 返回自身
  55. @discardableResult
  56. func font(_ font: UIFont) -> Self {
  57. let range = NSMakeRange(0, length)
  58. addAttributes([.font: font], range: range)
  59. return self
  60. }
  61. // MARK: 1.6、设置富文本文字的间距
  62. /// 设置富文本文字的间距
  63. /// - Parameter wordSpaceing: 字体之间的间距
  64. /// - Returns: 返回自身
  65. @discardableResult
  66. func kern(_ wordSpaceing: CGFloat) -> Self {
  67. let range = NSMakeRange(0, length)
  68. addAttributes([.kern: wordSpaceing], range: range)
  69. return self
  70. }
  71. // MARK: 1.7、设置段落的样式
  72. /// 设置段落的样式
  73. /// - Parameter style: 样式
  74. /// - Returns: 返回自身
  75. @discardableResult
  76. func paragraphStyle(_ style: NSMutableParagraphStyle) -> Self {
  77. let range = NSMakeRange(0, length)
  78. addAttributes([.paragraphStyle: style], range: range)
  79. return self
  80. }
  81. }