_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];
画圆圈和设置渐变色
猜你喜欢
转载自www.cnblogs.com/kimiyo/p/11579737.html
今日推荐
周排行