CAGradientlayer可以绘制一个充满整个图层的颜色梯度(包括原型图层等图层)在一个背景颜色上
了解在CAGradientLayer之前,先要我们了解一下CALayer的坐标,如下图,一个层的左上角为(0,0),其右下角坐标为(1,1),中心点是(0.5,0.5),任何图层都是如此,和父图层以及自身的形状无关。
他和平时的坐标系是反过来的Y轴朝下
CAGradientLayer的属性
属性
颜色一个内部的英文的数组,规定所有的梯度所显示的颜色,默认为零
CAGradientLayer *gradient1 = [CAGradientLayer layer];
// 颜色分配
gradient1.colors = @[(__bridge id)[UIColor redColor].CGColor,
(__bridge id)[UIColor greenColor].CGColor,
(__bridge id)[UIColor blueColor].CGColor];
// 颜色分割线
colorLayer.locations = @[@(0.25), @(0.5), @(0.75)];
// 起始点
colorLayer.startPoint = CGPointMake(0, 0);
// 结束点
colorLayer.endPoint = CGPointMake(1, 0);
颜色分配严格遵守Layer的坐标系统,locations,startPoint,endPoint都是以Layer坐标系统进行计算的.
*而locations并不是表示颜色值所在位置,它表示的是颜色在Layer坐标系相对位置处要开始进行渐变颜色了.
=======================================================*
CAGradientLayer 的这四个属性 colors locations startPoint endPoint 都是可以进行动画的哦.
动画效果如下: