测试已测试 | ✗ |
语言语言 | Objective CObjective C |
许可证 | MIT |
发布上次发布 | 2014年12月 |
由 Henri Normak 维护。
一组不同的与 UIColor 相关的扩展。您可以在 Twitter 上联系我 @henrinormak
有几种方法来获取 UIColor,例如红色、绿色或蓝色等组成成分的一些方法。此外,还有一些通过改变亮度或饱和度等组件来获取新颜色的一些方法。
示例
CGFloat redComponent = [[UIColor redColor] getRed];
CGFloat blueComponent = [[UIColor redColor] getBlue];
从颜色获取调色板的一些便捷方法。有不同类型的调色板可用,如类似色、分割互补色、三色、正方形和四色。
示例
// Returns colours that are roughly blueColor and greenColor
NSArray *triadicColours = [[UIColor redColor] triadicColors];
有几项方法用于根据 WGAC 标准确定两种颜色之间的对比度。还有一个简单的获取给定背景颜色中最合适的文本颜色(黑色或白色)的方法。
示例
// Returns whiteColor as it's most contrasting with blue
UIColor *textColor = [[UIColor blueColor] contrastingTextColor];
// Returns ~13.85 as the ratio according to WGAC standard
CGFloat contrastRatio = [[UIColor blueColor] contrastRatioWithColor:[UIColor whiteColor]];
通过从颜色数组中获取插值颜色来获得颜色,这可以被视为在渐变中的某个点获取颜色。
示例
// Returns a colour exactly in the middle between white and black (so 50% gray)
UIColor *gray = [UIColor colorAtPosition:.5f fromColor:[UIColor blackColor] toColor:[UIColor whiteColor]];
// Equivalent to the previous call, but allows more than two colour gradients
UIColor *gray = [UIColor colorAtPosition:.5f withinColors:@[[UIColor whiteColor], [UIColor blackColor]]];
通过基于混合模式混合两种颜色来创建新颜色的方法。这在性能至关重要时非常有用,通过预先混合颜色并使用该颜色代替,以避免半透明颜色 - 结果颜色是不透明的(即 alpha 值为 1.0)。使用这些方法,您还可以复制 Photoshop 中的图层混合模式。
混合的参考
示例
// Getting the same effect as if you had used a blend mode when filling a colour on top of another colour
// For example, overlay of white on darker blue produces full blue
UIColor *overlayBlue = [[UIColor colorForHexString:@"0000da"] colorByBlendingWithColor:[UIColor whiteColor] mode:kColorBlendingModeOverlay]
有两个杂项方法,一个用于将 CSS 风格的 HEX 字符串转换为颜色,如 "#FFF" 或 "FF",还有一个用于获取完全随机的颜色