CALayer mask 遮罩

来源:互联网 发布:linux防暴力破解 编辑:程序博客网 时间:2024/05/16 18:48

mask - 遮罩,遮罩之外部分不会显示

CAGradientLayer - 渐变色layer


UIBezierPath *path = [UIBezierPath bezierPath];    [path moveToPoint:CGPointMake(5, 5)];    [path addLineToPoint:CGPointMake(80, 5)];    [path addLineToPoint:CGPointMake(100, 30)];    [path addLineToPoint:CGPointMake(120, 5)];    [path addLineToPoint:CGPointMake(140, 80)];    [path closePath];        //遮罩layer    CAShapeLayer *shapeLayer = [CAShapeLayer layer];    shapeLayer.strokeColor = [UIColor purpleColor].CGColor;    shapeLayer.fillColor = [UIColor orangeColor].CGColor;    shapeLayer.lineWidth = 3;    shapeLayer.path = path.CGPath;        //渐变色layer    CAGradientLayer *gradiLayer = [CAGradientLayer layer];    gradiLayer.colors = @[(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor redColor].CGColor];    gradiLayer.frame = CGRectMake(0, 0, 200, 100);    gradiLayer.locations = @[@(0),@(0.3),@(1)];    gradiLayer.startPoint = CGPointMake(0.5, 0);    gradiLayer.endPoint = CGPointMake(0.5, 1);        [backView.layer addSublayer:gradiLayer];    [backView.layer addSublayer:shapeLayer];        //遮罩范围之外的部分不会显示    gradiLayer.mask = shapeLayer;