diff --git a/Sources/DSKit/UIKit/UIColor/UIColor+Hex.swift b/Sources/DSKit/UIKit/UIColor/UIColor+Hex.swift index e26f261..d467b15 100644 --- a/Sources/DSKit/UIKit/UIColor/UIColor+Hex.swift +++ b/Sources/DSKit/UIKit/UIColor/UIColor+Hex.swift @@ -16,14 +16,14 @@ public extension UIColor { } var hex: String { - guard let components = cgColor.components, components.count >= 3 else { - return "" - } - - let red = Int(components[0] * 255) - let green = Int(components[1] * 255) - let blue = Int(components[2] * 255) - - return String(format: "#%02X%02X%02X", red, green, blue) + var red: CGFloat = 0 + var green: CGFloat = 0 + var blue: CGFloat = 0 + + getRed(&red, green: &green, blue: &blue, alpha: nil) + + let rgb: Int = (Int)(red*255)<<16 | (Int)(green*255)<<8 | (Int)(blue*255)<<0 + + return String(format: "#%06x", rgb) } } diff --git a/Tests/DSKitTests/UIKit/UIColor/UIColor+Hex.swift b/Tests/DSKitTests/UIKit/UIColor/UIColor+Hex.swift new file mode 100644 index 0000000..e2b9a17 --- /dev/null +++ b/Tests/DSKitTests/UIKit/UIColor/UIColor+Hex.swift @@ -0,0 +1,16 @@ +// +// UIColor+Hex.swift +// DSKit +// +// Created by David Chavez on 3/28/24. +// + +import XCTest +@testable import DSKit + +final class UIColorHexTests: XCTestCase { + func testColorHex() { + XCTAssertEqual(UIColor.white.hex, "#ffffff") + XCTAssertEqual(UIColor.black.hex, "#000000") + } +}