_height = self.frame.size.height;
_width = self.frame.size.width;
//圆心
self.circleCenter = CGPointMake(_width/2.0, _height/2.0);
//线条宽度
CGFloat lineWidth = 10.0;
//半径
self.outerCircleRadius = (_width-lineWidth)/2;
CAShapeLayer *outCircle = [CAShapeLayer new];
outCircle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0,0) radius:self.outerCircleRadius startAngle:(0.75*M_PI) endAngle:(0.25*M_PI) clockwise:YES].CGPath;
outCircle.strokeColor = [UIColor colorWithHexString:@"008000"].CGColor;
outCircle.fillColor = [UIColor clearColor].CGColor; //这里不设为clearColor,渐变色就不会显示为圆圈
outCircle.lineWidth = lineWidth;
outCircle.position = self.circleCenter;
[self.layer addSublayer:outCircle];
CALayer *gradientLayer = [CALayer layer];
CAGradientLayer *gradientLayerLeft = [CAGradientLayer layer];
gradientLayerLeft.frame = CGRectMake(0, 0, self.frame.size.width/2, self.frame.size.height);
[gradientLayerLeft setColors:[NSArray arrayWithObjects:(id)[UIColor colorWithHexString:@"008000"].CGColor,(id)[[UIColor orangeColor] CGColor], nil]];
[gradientLayerLeft setLocations:@[@0.15,@.85]];
[gradientLayerLeft setStartPoint:CGPointMake(0.5, 1)];
[gradientLayerLeft setEndPoint:CGPointMake(0.5, 0)];
[gradientLayer addSublayer:gradientLayerLeft];
CAGradientLayer *gradientLayerRight = [CAGradientLayer layer];
[gradientLayerRight setLocations:@[@.15,@.85]];
gradientLayerRight.frame = CGRectMake(self.frame.size.width/2, 0, self.frame.size.width/2, self.frame.size.height);
[gradientLayerRight setColors:[NSArray arrayWithObjects:(id)[[UIColor orangeColor] CGColor],(id)[[UIColor redColor] CGColor], nil]];
[gradientLayerRight setStartPoint:CGPointMake(0.5, 0)];
[gradientLayerRight setEndPoint:CGPointMake(0.5, 1)];
[gradientLayer addSublayer:gradientLayerRight];
[gradientLayer setMask:outCircle]; //用outCircle来截取渐变层
[self.layer addSublayer:gradientLayer];
如果觉得《python用渐变色画圆_画圆圈和设置渐变色》对你有帮助,请点赞、收藏,并留下你的观点哦!