美文网首页
CAlayer子类之CAGradientLayer(实现渐变色

CAlayer子类之CAGradientLayer(实现渐变色

作者: saintPN | 来源:发表于2016-03-15 14:23 被阅读0次

    一看就懂demo下载地址:github

      CAGradientLayer,文档介绍很简单,在背景色上绘制渐变色,填满layer。API里只有5个属性:colors(用作渐变的颜色数组)、locations(用作分界的位置数组)、endpoint(渐变结束位置)、startpoint(渐变开始位置)、type(表示像素变化方式,只有一个值)。

    代码实例:

    1先创建一个label

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 200, 28)];

    label.text = @"大家快看渐变色";

    [self.view addSubview:label];

    2创建layer

    CAGradientLayer *layer = [CAGradientLayer layer];

    layer.frame = label.bounds;

    layer.colors = @[(__bridge id)[UIColor redColor].CGColor,

    (__bridge id)[UIColor greenColor].CGColor,

    (__bridge id)[UIColor blackColor].CGColor,

    (__bridge id)[UIColor whiteColor].CGColor,

    (__bridge id)[UIColor blueColor].CGColor

    ];

    layer.locations = @[@(0.2), @(0.35),@(0.5),@(0.65),@(0.7)];

    layer.startPoint = CGPointMake(0, 0);

    layer.endPoint = CGPointMake(1, 1);

    layer.type = kCAGradientLayerAxial;

    layer.bounds = CGRectMake(0, 0, 400, 400);

    layer.position = CGPointMake(200, 340);

    layer.mask = label.layer;

    [self.view.layer addSublayer:layer];

      这两步实现原理是先创建一个label负责显示文字,再创建一个layer负责显示渐变色,然后最后把layer覆盖在label上,所以两个的frame要设置准确,不然会显示空白,最终出来的效果就是有渐变色的文字

    相关文章

      网友评论

          本文标题: CAlayer子类之CAGradientLayer(实现渐变色

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