円を描くとグラデーションの色を設定します

  
   _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];

 

おすすめ

転載: www.cnblogs.com/kimiyo/p/11579737.html