这里直接通过代码示例说明:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.view.bounds;
[gradientLayer setColors:[NSArray arrayWithObjects:
(id)[[UIColor redColor] CGColor],
(id)[[UIColor greenColor] CGColor],
(id)[[UIColor yellowColor] CGColor], nil]];
[gradientLayer setLocations:@[@0.0,@0.5,@1.0]];
[gradientLayer setStartPoint:CGPointMake(0.0, 0.0)];
[gradientLayer setEndPoint:CGPointMake(0.0, 1.0)];
[self.view.layer addSublayer:gradientLayer];
说明:
CAGradientLayer用于绘制一个颜色渐变填充图层的形状;
@property(copy) NSString *type;
目前只有kCAGradientLayerAxial一个选项,即呈线性变化,因此不用管它;
@property(nullable, copy) NSArray *colors;
颜色数组,定义渐变层的各个颜色;
@property(nullable, copy) NSArray<NSNumber *> *locations;
一个可选的NSNumber数组,决定每个渐变颜色的终止位置,这些值必须是递增的,数组的长度和colors的长度最好一致,在如上的例子中如果修改如下代码;
[gradientLayer setLocations:@[@0.0,@1.0]];
则显示为仅仅红色和绿色两个颜色渐变,效果如下:
@property CGPoint startPoint;
@property CGPoint endPoint;
分别表示渐变层的起始位置和终止位置,这两个点被定义在一个单元坐标空间,[0,0]表示左上角位置,[1,1]表示右下角位置,默认值分别是
[.5,0] and [.5,1];
修改这两个属性为如下值,
[gradientLayer setStartPoint:CGPointMake(0.0, 0.0)];
[gradientLayer setEndPoint:CGPointMake(1.0, 1.0)];
则效果图如下: