_height = self.frame.size.height。 _width = self.frame.size.width。 //圆心 self.circleCenter = CGPointMake(_width / 2.0、_height / 2.0)。 //线条宽度 CGFloat線幅= 10.0; //半径 self.outerCircleRadius =(_width線幅)/ 2。 CAShapeLayer * outCircle = [CAShapeLayer新]。 outCircle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0,0)半径:self.outerCircleRadius startAngleの:(0.75 * M_PI)endAngle:(0.25 * M_PI)時計回り:YES] .CGPath。 outCircle.strokeColor = [UIColor colorWithHexString:@ "008000"]。CGColor。 outCircle.fillColor = [UIColor clearColor] .CGColor。//这里不设为clearColor、渐变色就不会显示为圆圈 outCircle.lineWidth =線幅。 outCircle.position = self.circleCenter。 [addSublayer self.layer:outCircle]。 CALayerの* gradientLayer = [CALayerの層]。 CAGradientLayer * gradientLayerLeft = [CAGradientLayer層]。 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層]。 [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]]ニル]。 [gradientLayerRight setStartPoint:CGPointMake(0.5、0)]。 [gradientLayerRight setEndPoint:CGPointMake(0.5、1)]。 [gradientLayer addSublayer:gradientLayerRight]。 [gradientLayer setMask:outCircle]。//用outCircle来截取渐变层 [addSublayer self.layer:gradientLayer];