Hex 6.1.0

Hex 6.1.0

测试已测试
Lang语言 SwiftSwift
许可证 NOASSERTION
发布最后发布2019年7月
SPM支持 SPM

Elvis Nuñez 维护。



Hex 6.1.0

Hex

十六进制三联组合是一个六位的三字节十六进制数,用于 HTML、CSS、SVG 及其他计算应用程序中,用于表示颜色。这些字节代表颜色的红、绿和蓝三个元素。一个字节表示一个在 00 到 FF(十六进制表示)之间或 0 到 255(十进制表示)的范围内的数。这代表每个颜色元素的最小(0)到最大(255)的强度。因此,网络颜色指定了 True Color(24 位 RGB)颜色方案中的颜色。

在 iOS 中处理十六进制颜色存在问题,并且可能变得相当重复。我们一直期待 Apple 对此做些什么,但事实上并没有太多进展。

这就是我创建 Hex 的原因,这是一个简单的扩展,可以帮你解决问题。它与 Objective-C 和 Swift 都能很好地协同工作。

安装

pod 'Hex'

创建颜色

Swift

import Hex

let redColor = UIColor(hex: "FF0000")

Objective-C

@import Hex;

UIColor *color = [[UIColor alloc] initWithHex:@"FF0000"];

不透明度

由于HEX只支持RGB,因此不支持不透明度,但我们都想知道为什么它不应该支持?这就是为什么你可以在HEX字符串末尾追加不透明度百分比的原因。

一些示例

UIColor(hex: "#ff0000")   => UIColor.red
UIColor(hex: "#ff000075") => UIColor.red.withAlphaComponent(0.75)
UIColor(hex: "#ff000050") => UIColor.red.withAlphaComponent(0.50)

检查颜色是否相等

当你从HEX字符串创建颜色时,使用isEqual方法并不适用于UIColor,这是因为UIKit处理颜色的方式。这就是为什么在比较颜色之前,你必须将颜色转换为RGBSpace。幸运的是,Hex包含一个辅助方法,这个方法帮助您检查颜色的相等性,这个方法在内部会规范化颜色空间。

let blackHex = UIColor(hex: "000000")
let black = UIColor.black

if blackHex.isEqualTo(black) {
    // Do something
}
UIColor *blackHex = [[UIColor alloc] initWithHex: @"000000"];
UIColor *black = [UIColor blackColor];

if ([blackHex isEqualTo:black]) {
    // Do something
}

变得精彩

如果有什么看起来很愚蠢,请创建一个友好和建设性的问题,得到您的反馈会非常棒。

祝您有个愉快的一天。

作者

Elvis Nuñez, @3lvis

许可证

Hex在MIT许可证下可用。更多信息请参阅LICENSE文件。