UIColor-CrossFade 1.1.0

UIColor-CrossFade 1.1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2014年12月

Charles Powell 维护。



  • Charles Powell

UIColor+CrossFade

UIColor+CrossFade 是一个 UIColor 分类,它添加了一个类方法,该方法返回由两个指定的 UIColor 对象在指定的比率(0.0 和 1.0 之间)交叉混合而成的 UIColor。

使用 UIColor+CrossFade

导入 UIColor+CrossFade.h,并按以下方式使用

UIColor *colorA = [UIColor redColor];
UIColor *colorB = [UIColor blueColor];
UIColor *crossFade = [UIColor colorForFadeBetweenFirstColor:colorA secondColor:colorB atRatio:0.5f];
// crossFade is purple

在比率 0.0f 时,结果是完全的第一颜色。在比率 1.0f 时,结果是完全的第二颜色。

请记住 - 您控制比率,它不必是线性的!ratio = powf((1 - value/valueNominal), 0.333f) 也同样有效。

还有一个方便的方法,该方法返回指定 firstColor 和 secondColor 之间的交叉混合增量数组(感谢 peyton!)

UIColor *colorA = [UIColor redColor];
UIColor *colorB = [UIColor blueColor];
NSUInteger steps = 5;
NSArray *steppedColors = [UIColor colorsForFadeBetweenFirstColor:firstColor lastColor:lastColor inSteps:steps];
// steppedColors is an NSArray of 5 UIColor objects, crossfaded in steps between firstColor and secondColor

您还可以使用一个版本的便利函数,该函数允许您定义方法在计算颜色步骤时使用的曲线,例如

NSArray *steppedColors = [UIColor colorsForFadeBetweenFirstColor:firstColor 
                                                       lastColor:lastColor
                                               withRatioEquation:^(float input) {
                                                     return powf(input, 1/4.0f);
                                               }
                                                          inSteps:steps];

请参考所包含的 UIColorCrossFadeDemo 项目,该项目使用了极有用的 InfColorPicker,以获取进一步的用例。

如果您在您的应用程序中使用此功能,我很乐意听到您的反馈!