how to make a gradient border of UIView?

后端 未结 6 1110
遇见更好的自我
遇见更好的自我 2020-12-28 17:37

I want to make a gradient border of view like the following picture:

\"Image\"

but I don\'t know how d

6条回答
  •  天命终不由人
    2020-12-28 18:21

    objective-c version of Christos Hadjikyriacou's answer

      @implementation CALayer(Border)
    
    -(void) addGradientBorder {
    
    CAGradientLayer *gradientLayer =  [[CAGradientLayer alloc] init];
    gradientLayer.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
    gradientLayer.startPoint = CGPointMake(0.0, 0.5);
    gradientLayer.endPoint = CGPointMake(1.0, 0.5);
    gradientLayer.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor blueColor].CGColor];
    
    CAShapeLayer *shapeLayer =[[CAShapeLayer alloc] init];
    shapeLayer.lineWidth = 0.5;
    shapeLayer.path = [UIBezierPath bezierPathWithRect:self.bounds].CGPath;
    shapeLayer.fillColor = nil;
    shapeLayer.strokeColor = [UIColor blackColor].CGColor;
    gradientLayer.mask = shapeLayer;
    [self addSublayer : gradientLayer];
    }
    @end
    

提交回复
热议问题