美文网首页
渐变图层开发

渐变图层开发

作者: iOS_tree | 来源:发表于2023-07-27 22:30 被阅读0次

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;

相关文章

网友评论

      本文标题:渐变图层开发

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