CAGradientLayer设置渐变色

刚入行的时候,设计就提出渐变效果的需求。但是,当时,技术渣呀,只能被设计吐嘈吐嘈再吐嘈。

后来犹记是为了实现图片根据季节颜色变换,设计不再宠我了,一定要让实现渐变的效果。
万幸啊,后来结识了CAGradientLayer

上代码啦

- (void)addTheGradientLayerWithBeginColor:(UIColor *)beginColor
                              andEndColor:(UIColor *)endColor
                                fromPoint:(CGPoint)startPoint
                                 endPoint:(CGPoint)endPoint{
    if (!self.gradientLayer) {
        CAGradientLayer * gradientLayer = [CAGradientLayer layer];
        [self.layer addSublayer:gradientLayer];
        self.gradientLayer = gradientLayer;
    }
    //设置渐变色区域
    self.gradientLayer.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    //设置渐变色的颜色组
    self.gradientLayer.colors = @[(__bridge id)beginColor.CGColor, (__bridge id)endColor.CGColor];
    //设置渐变颜色方向,左上点为(0,0), 右下点为(1,1)
    self.gradientLayer.startPoint = startPoint;
    self.gradientLayer.endPoint = endPoint;
}

你以为CAGradientLayer只能实现渐变很一般的效果,但是结合CAShapeLayer可实现如下这些效果还是蛮赞的

CAGradientLayer设置渐变色_第1张图片
网络图片,侵删1.gif
CAGradientLayer设置渐变色_第2张图片
网络图片,侵删2.gif

你可能感兴趣的:(CAGradientLayer设置渐变色)