渐变图层开发

2023-07-27  本文已影响0人  iOS_tree

iOS渐变图层使用CAGradientLayer类进行实现

CAGradientLayer *gradientLayer = [[CAGradientLayer alloc] init];
    gradientLayer.frame = CGRectMake(100, 100, 200, 400);
//    设置渐变的颜色组
    gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor];
    gradientLayer.startPoint = CGPointMake(1, 0);
    gradientLayer.endPoint = CGPointMake(1, 1);
    
    gradientLayer.locations = @[@(0),@(0.5),@(1)];

    [self.view.layer addSublayer:gradientLayer];

包含设置渐变的颜色数组、渐变的起点终点(可以控制渐变方向)、渐变的位置

也可以给渐变图层增加遮罩,遮罩的路径可以自己实现路径绘制,以达到想要的效果,设置mask属性就是为遮罩,遮罩的路径需要进行闭合

//    添加遮罩
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
//    UIBezierPath *maskPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 200, 400)];
    
    UIBezierPath *maskPath = [UIBezierPath bezierPath];
    [maskPath moveToPoint:CGPointMake(0, 0)];
    [maskPath addLineToPoint:CGPointMake(200, 200)];
    [maskPath addLineToPoint:CGPointMake(100, 400)];
    [maskPath addLineToPoint:CGPointMake(0, 200)];
    [maskPath addLineToPoint:CGPointMake(0, 0)];
    
    maskLayer.path = maskPath.CGPath;
    gradientLayer.mask = maskLayer;
上一篇 下一篇

猜你喜欢

热点阅读