像素
《像素》库的目的是简化iOS中的颜色常见任务,从而使得实现多彩UI设计变得更加容易。完全兼容原生iOS SDK。
如何开始
- 将
源
文件夹的内容复制到您的项目中。
或者
- 使用
Pixel
CocoaPod
要求
- iOS 9及其更高版本
- Xcode 9及其更高版本
- Swift 4
用法
颜色初始化
RGB系统中颜色的常见表达式是#123456
。这种表达式的另一种形式像#123
,相当于#112233
。然而,iOS SDK不支持上述表达式,并要求在UIColor
类构造函数中使用CGFloat
值来表示红、绿、蓝和透明度的各个分量。这并不方便,对吧?
Pixels
提供了解决上述问题的方案,因此你不必这样做:
let grayColor = UIColor(
red: 51.0 / 255.0,
green: 51.0 / 255.0,
blue: 51.0,
alpha: 255.0
)
你只需简单地写这个:
let grayColor = UIColor(hexString: "#333333") // RGB {51, 51, 51}
或者这个:
let grayColor = UIColor(hexString: "#333") // RGB {51, 51, 51}
甚至这个:
let grayColor = UIColor(hexString: "333") // RGB {51, 51, 51}
如最后一个示例所示,尖括号是可选的。无论是否有尖括号前缀,十六进制字符串都将被正确解析。
Pixels
同时支持RGB和RGBA颜色系统,因此你也可以在表达式中添加透明度分量。
let grayColorWithSmallTransparency = UIColor(hexString: "#333333dd") // RGBA {51, 51, 51, 221}
let halfTransparentGrayColor = UIColor(hexString: "#3338") // RGBA {51, 51, 51, 136}
let almostTransparentGrayColor = UIColor(hexString: "#33333310") // RGBA {51, 51, 51, 16}
如果十六进制字符串格式不正确,将返回nil
而不是UIColor
实例。
颜色操作
使用Pixels
,你可以反转任何颜色
let invertedColor = UIColor.white.pxls
.invertedColor(invertAlpha: false)
.color // returns black color
还可以混合两种颜色
let mixedColor = UIColor.blue.pxls
.mix(with: UIColor.orange)
.color // returns purple color
所有操作都支持链式调用,因此你可以像下面示例那样使用它们
let resultColor = UIColor.yellow.pxls
.invertedColor(invertAlpha: false) // invert yellow color
.mix(with: .orange) // mix inverted color with orange
.color // get `UIColor` instance
.withAlphaComponent(0.5) // make color 50% transparent
每个链从.pxls
开始,并以提及.color
引用来生成最终的UIColor
实例结束。
品牌颜色
有时你不知道哪些颜色适用于你的项目。但你不一定需要成为一名专业设计师,因为你可以重用知名服务使用的流行颜色方案。 Pixels
提供了一组出色的品牌颜色。你所需要做的只是写下
let color = UIColor.Brands.Google.blue
或者
let color = UIColor.Brands.Flickr.pink
当然,你不仅限于对这些颜色进行任何操作
let flickrPinkWithHalfTransparency = UIColor.Brands.Flickr.pink.colorWithAlphaComponent(0.5)
要查看所有可用的品牌,只需在Xcode中键入UIColor.Brands.
,你将看到类似于下面的输出
检查可用的品牌的另一种方法是查看源代码。
HTML颜色
Pixels
提供了一组HTML颜色。它们都可在UIColor.HTML
命名空间中找到。
let purple = UIColor.HTML.purple // #800080
let orange = UIColor.HTML.orange // #FFA500
let lightGreen = UIColor.HTML.lightGreen // #90EE90
Google 材料色彩
像素
还包含了一套材料色彩,例如以下示例中所示。
let orange = UIColor.Material.Orange._500
let blue = UIColor.Material.Blue.a200
// etc.
许可
像素
遵循 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。