CAGradientLayer 是继承CALayer 的类,看layer 就明白了,是对layer层动画的操作。
CAGradientLayer用于处理渐变色的层结构.
由于项目中需求一个类似于彩虹进度的lable。 所以自己查了下用法, 写了一个小Demo
@interface
@property (nonatomic, strong) UILabel * label2;
@property (nonatomic, strong) CAGradientLayer * gradientLayer;
.m文件
- test {
//初始化, 我给的宽度是1
_label2 = [[UILabel alloc]initWithFrame:CGRectMake(CGRectGetMinX(label.frame), self.view.center.y, 1, 20)];
[self.view addSubview:_label2];
//然后加入一个动画 让width 设置成你想要的。(我测试的是300)(动画要加在CAGradientLayer之前)
[UIView animateWithDuration:3 animations:^{
_label2.frame = CGRectMake(30, self.view.center.y-10, 300, 20);
}];
//? ? 渐变层
_gradientLayer = [CAGradientLayer layer];
_gradientLayer.frame = _label2.bounds;
[_label2.layer addSublayer:_gradientLayer];
//关于CAGradientLayer的坐标系统? 相当于一个矩形 (0,0)(0,1)(1,0)(1,1)的 坐标系系统
//开始坐标
_gradientLayer.startPoint = CGPointMake(0, 0);
//结束坐标
_gradientLayer.endPoint = CGPointMake(1, 0);
//设置的渐变色区间
self.gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor yellowColor].CGColor];
}
下面就是效果图
第一次写 缺点请多多包涵