title: Gradient color in Circle
body: <p>I have to create a circle with animation, I have created it and everything is working fine. My problem is to add gradient color. Please refer screen shot attached</p>
  
  <p><a href="https://i.stack.imgur.com/4yftX.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/4yftX.png" alt="Circle with gradient color"></a></p>
  
  <p>Below is my code for creating circle with animation:</p>
  
  <pre><code>      let lineWidth: CGFloat = 20
  
        dispatch_async(dispatch_get_main_queue()) { () -&gt; Void in
  
          let startAngle = -90.0
          let endAngle = -90.01
  
          let circlePath = UIBezierPath(arcCenter: CGPoint(x: self.frame.width/2,y: self.frame.height/2), radius: CGFloat(self.frame.width/2 - (self.lineWidth/2)), startAngle: CGFloat(((startAngle) / 180.0 * M_PI)), endAngle:CGFloat(((endAngle) / 180.0 * M_PI)), clockwise: true)
  
          // Circle layer
          let circleLayer = CAShapeLayer()
          circleLayer.path = circlePath.CGPath
          circleLayer.fillColor = UIColor.clearColor().CGColor
          circleLayer.strokeColor = UIColor.greenColor().CGColor
          circleLayer.strokeEnd = 94/100
          circleLayer.lineWidth = self.lineWidth
          circleLayer.zPosition = 1
  
          // Background circle layer
          let circleBackgroundLayer = CAShapeLayer()
          circleBackgroundLayer.path = circlePath.CGPath
          circleBackgroundLayer.fillColor = UIColor.clearColor().CGColor
          circleBackgroundLayer.strokeColor = UIColor.lightgrayColor().CGColor
          circleBackgroundLayer.strokeEnd = 1.0
          circleBackgroundLayer.lineWidth = self.lineWidth
          circleBackgroundLayer.zPosition = -1
  
          self.layer.addSublayer(circleLayer)
          self.layer.addSublayer(circleBackgroundLayer)
  
          // Add Animation
          let pathAnimation = CABasicAnimation(keyPath: "strokeEnd")
          pathAnimation.duration = 0.55
          pathAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
          pathAnimation.fromValue = 0
          pathAnimation.toValue = 94/100
  
          circleLayer.addAnimation(pathAnimation, forKey: "strokeEnd")
  
      }
  </code></pre>
  
  <p>My question is in the above code where should I add <code>CAGradientLayer</code> to add gradient color.</p>
  
  <p>The below lines of code is to add gradient color:</p>
  
  <pre><code>       let gradient: CAGradientLayer = CAGradientLayer()
          gradient.frame = CGRectMake(0, 0, 170, 170)
          gradient.colors = [UIColor(hexString: "#27C68A")().CGColor, UIColor(hexString: "#86EA26")().CGColor]
          gradient.cornerRadius = gradient.frame.width/2
          gradient.startPoint = CGPoint(x: 0,y: 1)
          gradient.endPoint = CGPoint(x: 1, y: 0)
          self.layer.insertSublayer(gradient, atIndex: 0)
  </code></pre>