Swift: UIBezierPath Stroke Animation from Center
<p>I've been making a simple <code>UIBezierPath</code> animation with Swift. This path consists on creating a rounded rectangle with a colored border. The animation must be the drawing of the colored border. To do so, I've created a <code>CAShapeLayer</code> with a <code>UIBezierPath(roundedRect:, cornerRadius: )</code>    </p>

<pre><code>let layer = CAShapeLayer()
var viewPrueba = UIView()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    viewPrueba = UIView(frame: CGRectMake(self.view.frame.width/2-100, self.view.frame.height/2 - 100, 200, 200))
    self.view.addSubview(viewPrueba)
    let path = UIBezierPath(roundedRect: CGRectMake(0, 0, 200, 200), cornerRadius: 40.0)
    layer.path = path.CGPath
    layer.fillColor = UIColor.clearColor().CGColor
    layer.strokeColor = UIColor.blueColor().CGColor
    layer.strokeStart = 0.0
    layer.strokeEnd = 0.0
    layer.lineWidth = 4.0
    layer.lineJoin = kCALineJoinRound
    viewPrueba.layer.addSublayer(layer)
    let tapGR = UITapGestureRecognizer(target: self, action: #selector(ViewController.anim))
    self.view.addGestureRecognizer(tapGR)
}

func anim() {
    let anim1 = CABasicAnimation(keyPath: "strokeEnd")
    anim1.fromValue         = 0.0
    anim1.toValue           = 1.0
    anim1.duration          = 4.0
    anim1.repeatCount       = 0
    anim1.autoreverses      = false
    anim1.removedOnCompletion = false
    anim1.additive = true
    anim1.fillMode = kCAFillModeForwards
    self.layer.addAnimation(anim1, forKey: "strokeEnd")
}`
</code></pre>

<p>It works well. The only problem is that the animation starts from the top-left part of the square and not from the top-center. How can I do that?</p>

<p>The only thing I've found in order to achieve this is by doing it with a circle and not a rectangle, which is not what we want.</p>

<p><a href="https://i.stack.imgur.com/2mqos.png" rel="noreferrer"><img src="https://i.stack.imgur.com/2mqos.png" alt="This is where the animation starts"></a></p>

<p>Thanks</p>