ColorHelper.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // ColorHelper.swift
  3. // compdfkit_flutter
  4. //
  5. // Created by Xiaolong Liu on 2024/7/15.
  6. //
  7. import UIKit
  8. class ColorHelper {
  9. static func colorWithHexString (hex:String) -> UIColor {
  10. var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
  11. if (cString.hasPrefix("#")) {
  12. cString.remove(at: cString.startIndex)
  13. }
  14. if ((cString.count) != 6) {
  15. return UIColor.gray
  16. }
  17. var rgbValue:UInt64 = 0
  18. Scanner(string: cString).scanHexInt64(&rgbValue)
  19. return UIColor(
  20. red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
  21. green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
  22. blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
  23. alpha: CGFloat(1.0)
  24. )
  25. }
  26. }
  27. extension UIColor {
  28. func toHexString() -> String? {
  29. var red: CGFloat = 0
  30. var green: CGFloat = 0
  31. var blue: CGFloat = 0
  32. var alpha: CGFloat = 0
  33. guard self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) else {
  34. return nil
  35. }
  36. let rgb: Int = (Int)(red * 255) << 16 | (Int)(green * 255) << 8 | (Int)(blue * 255) << 0
  37. return String(format: "#%06x", rgb)
  38. }
  39. }