linear Gradient:
// get context
CGContextRef context = UIGraphicsGetCurrentContext();
// 颜色
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceCMYK();
/*
赤色 【RGB】255, 0, 0 【CMYK】 0, 100, 100, 0
橙色 【RGB】 255, 165, 0 【CMYK】0, 35, 100, 0
黄色 【RGB】255, 255, 0 【CMYK】0, 0, 100, 0
绿色 【RGB】0, 255, 0 【CMYK】100, 0, 100, 0
青色 【RGB】0, 127, 255 【CMYK】100, 50, 0, 0
蓝色 【RGB】0, 0, 255 【CMYK】100, 100, 0, 0
紫色 【RGB】139, 0, 255 【CMYK】45, 100, 0, 0
*/
CGFloat components[] = {
0, 100.0 / 255,100.0/255,0,
0,35.0/255,100.0/255,0,
0,0,100.0/255,0,
100.0/255,0,100.0/255,0,
100.0/255,50.0/255,0,0,
100.0/255,100.0/255,0,0,
45.0/255,100.0/255,0,0
};
// 位置
CGFloat location[] = {0.0,1.0/6,2.0/6,3.0/6,4.0/6,5.0/6,1.0};
// 渐变
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, components, location, 7);
// draw
CGContextDrawLinearGradient(context, gradient, CGPointMake(10, 20), CGPointMake(110, 20), 0);
-----------------------------------------------------
radial Gradient:
// 获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// RGB上下文渲染器
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
// 颜色容器
NSArray *array = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor, (__bridge id)[UIColor purpleColor].CGColor];
// 颜色分布的位置
CGFloat location[] = {0.0,0.5,1.0};
// 渐变器
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)array, location)
// 显示结果
CGContextDrawRadialGradient(context, gradient, CGPointMake(100, 100), 50, CGPointMake(100, 100), 100, 0);