Swift Package Manager Mac

#️⃣ HexColor

HexColor 是一个小型库,可将十六进制表示法(例如 #eb5e34)的颜色转换为常用的标准颜色对象 NSColor(用于 macOS)或 UIColor(用于 iOS、tvOS 和 watchOS)。

用法

NSColor 上调用静态函数 fromHexString,并传递包含十六进制颜色值的字符串

let color = NSColor.fromHexString("#eb5e34") ?? .white

该函数返回一个 NSColor 对象。

无效的十六进制颜色代码将导致返回 nil。 在这种情况下,您可以使用 ?? 语法来默认为另一种颜色。

十六进制字符串中的 # 字符是可选的,可以省略

let color = NSColor.fromHexString("eb5e34")

也可以使用简写的 3 位数表示法

let color = NSColor.fromHexString("e53") // same hex color code as "ee5533"

如果可用,则从十六进制字符串中获取 alpha 通道

let color = NSColor.fromHexString("eb5e34cc") // the "cc" will convert to the alpha value 0.8

如果不可用,则假定为“ff”,alpha 值将为 1。

可以显式设置 alpha 值。 在这种情况下,将忽略十六进制字符串中的 alpha 部分

let color = NSColor.fromHexString("eb5e34cc", alpha: 0.5) // ignores "cc" and uses alpha value 0.5

您可以使用为 NSColor 提供的相同函数转换为 UIColor

let color = UIColor.fromHexString("#eb5e34") ?? .white

如果您需要将颜色转换为更通用的结构,则可以使用在 HexColor 结构中定义的函数(需要 import HexColor

let integer = HexColor.intFromHexString("#eb5e34") //returns the integer value 0xeb5e34ff
let (r, g, b, a) = HexColor.rgbaFromInt(0xeb5e34ff) //returns a tuple containing the (red, green, blue, alpha) CGFloat color components 

安装

Swift Package Manager

此库是一个 Swift 模块,可以用作 Package.swift 文件中的依赖项

.package(url: "https://github.com/WilhelmOks/HexColor.git", from: "1.0.1")

在 macOS 上 import HexNSColor 或在 iOS/tvOS/watchOS 上 import HexUIColor

复制源文件

或者,您可以简单地将源文件复制到您的项目中。

您需要文件 Sources/HexColor/HexColor.swift

另外,macOS 需要 Sources/HexNSColor/NSColorExtensions.swift,iOS/tvOS/watchOS 需要 Sources/HexUIColor/UIColorExtensions.swift