CAGradientLayer简介

来源:互联网 发布:广州茶楼你知多少钱 编辑:程序博客网 时间:2024/05/21 19:31

这里直接通过代码示例说明:

    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)];

则效果图如下:





0 0
原创粉丝点击