CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, 3);
colors:可以理解,就是颜色数组。
locations:The location for each color provided in components,也就是说颜色数组中的颜色的显示顺序。
例:
CGFloat colors[] ={
1,0,0,1,//红
0,1,0,1,//绿
0,0,1,1};//蓝
CGFloat locations[3] = {0,0.5,1};
我的理解:
把整个渐变区域当做一个[0,1]的区间,这里的locations[]就表示在这个[0,1]区间中颜色显示顺序,0表示开始的位置,1表示结束的位置。locations[]数组中第一个数据表示第一个颜色的位置信息。
即 红---->0------>开始
绿----->0.5---->中间位置
蓝----->1------>结束
故,这里的渐变为:红-->绿-->蓝色
CGFloat locations[3] = {1,0.5,0}; 渐变为:蓝-->绿--->红
CGFloat locations[3] = {1,0.8,0.5};
蓝--->0.5---->中间位置
绿--->0.8---->中间偏下
红--->1------->最后
故,渐变为:蓝--->绿--->红,但是蓝色占据一半,因为一直显示蓝色,直到0.5的位置才开始渐变为绿色








网友评论