美文网首页
CAGradientLayer实现渐变颜色

CAGradientLayer实现渐变颜色

作者: HAPPY小元宝 | 来源:发表于2016-08-09 14:23 被阅读45次

    CAGradientLayer是用来生成两种或更多颜色平滑渐变的。用Core Graphics复制一个CAGradientLayer并将内容绘制到一个普通图层的寄宿图也是有可能的,但是CAGradientLayer的真正好处在于绘制使用了硬件加速。

    基础渐变
    这些渐变色彩放在一个数组中,并赋给colors属性。这个数组成员接受CGColorRef类型的值(并不是从NSObject派生而来),所以我们要用通过bridge转换以确保编译正常。

    CAGradientLayer也有startPoint和endPoint属性,他们决定了渐变的方向。这两个参数是以单位坐标系进行的定义,所以左上角坐标是{0, 0},右下角坐标是{1, 1},如下代码:

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        UIView *colorView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
        [self.view addSubview:colorView];
        
        CAGradientLayer *gradientLayer = [CAGradientLayer layer];
        gradientLayer.frame = colorView.bounds;
        [colorView.layer addSublayer:gradientLayer];
        
        // set gradient colors
        gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor blueColor].CGColor];
        
        // set gradient start and end points
        gradientLayer.startPoint = CGPointMake(0, 0);
        gradientLayer.endPoint = CGPointMake(0.5, 0.5);
    
    }
    

    显示结果:


    屏幕快照 2016-08-09 下午2.22.03.png

    注意: colors接收的是CGColorRef类型的值,此处不转换也不会报错。

    原文出处: 钟声. “ios核心动画高级技巧”。

    相关文章

      网友评论

          本文标题:CAGradientLayer实现渐变颜色

          本文链接:https://www.haomeiwen.com/subject/hykdsttx.html