好久没写东西了,最近天天加班太可怕了- - 。。。
记录一下CAGradientLayer,感觉做一些效果的时候还是挺实用的。。。
暂时只是用这个类做出渐变色的效果,其它的效果还没太了解。。。像这样。。。
这是一个很单纯的类。。。自身特有的属性。。。很少。。。
首先说一下下面两个属性:
@property CGPoint startPoint;
@property CGPoint endPoint;
这两个属性决定了颜色渐变的方向,引用网上的一张图:(出处:http://blog.it985.com/7986.html)
从图上我们很明显地看出坐标对于方向的影响,坐标系统的参数的范围是从0到1。startPoint代表起始方向坐标点,endPoint代表结束方向坐标点,两个坐标点决定了一个方向。例如你需要横着的渐变色,设置startPoint(0,0),endPoint(0,1).这个坐标系统和你的layer是什么形状的并没有关系,圆形、三角形之类的同样应用于这个坐标系统。
有了色彩的方向,下面该说色彩的设置了,这里有两个关键的属性,一个是颜色,另一个是颜色分割点:
@property(nullable, copy) NSArray *colors;
@property(nullable, copy) NSArray<NSNumber *> *locations;
我对这两个的理解如下:
这两个属性是对应着使用的,颜色数组代表一组你想渐变的颜色,而颜色分割点代表着这个颜色渐变的区域(区域值是按坐标系统划分的,0-1的范围)。通过分割点我们就可以控制某个颜色所占的区域大小。
举个栗子,三组颜色值,浅灰,灰和黑:
self.gradientLayer.colors = @[(__bridge id)[UIColor lightGrayColor].CGColor,
(__bridge id)[UIColor grayColor].CGColor,(__bridge id)[UIColor blackColor].CGColor];
三个分割点:
self.gradientLayer.locations = @[@(0.2f) ,@(0.5),@(1.0f)];
个人理解的是:这个对应的效果应该是浅灰色在坐标系统的0.2-0.5部分渐变,0.2之前是纯浅灰色,灰色在0.5-1.0部分过渡,黑色在1.0部分过渡。显示效果就是最开始的那张图片。