layerName - View
let circle = ShapeView(frame: CGRect(x: 187.5, y: 191, width: 200, height: 200))
circle.backgroundColor = UIColor.clear
circle.alpha = 0
circle.layer.position = CGPoint(x: 187.5, y: 191)
circle.layer.bounds = CGRect(x: 0, y: 0, width: 200, height: 200)
circle.shapeLayer.fillRule = kCAFillRuleEvenOdd
circle.shapeLayer.fillColor = UIColor.white.cgColor
circle.shapeLayer.lineDashPattern = []
circle.shapeLayer.lineDashPhase = 0
circle.shapeLayer.lineWidth = 0
circle.shapeLayer.path = CGPathCreateWithSVGString("M100,200c55.2285,0,100,-44.7715,100,-100 0,-55.2285,-44.7715,-100,-100,-100 -55.2285,0,-100,44.7715,-100,100 0,55.2285,44.7715,100,100,100zM100,200")
layerName - Animations
Animation(delay: 0, duration: 0.25, curve: .easeOut) {
    circle.shapeLayer.position.y = 582.5
}.animate()
Animation(delay: 0.25, duration: 0.25, curve: .easeOut) {
    circle.shapeLayer.bounds.size.width = 200
    circle.shapeLayer.position.y = 191
    circle.shapeLayer.bounds.size.height = 200
    circle.path = CGPathCreateWithSVGString("M100,200c55.2285,0,100,-44.7715,100,-100 0,-55.2285,-44.7715,-100,-100,-100 -55.2285,0,-100,44.7715,-100,100 0,55.2285,44.7715,100,100,100zM100,200")
    let circlePathAnimation = CABasicAnimation(keyPath: "path")
    circlePathAnimation.fromValue = CGPathCreateWithSVGString("M491.5,983c271.448,0,491.5,-220.052,491.5,-491.5 0,-271.448,-220.052,-491.5,-491.5,-491.5 -271.448,0,-491.5,220.052,-491.5,491.5 0,271.448,220.052,491.5,491.5,491.5zM491.5,983")
    circlePathAnimation.toValue = CGPathCreateWithSVGString("M100,200c55.2285,0,100,-44.7715,100,-100 0,-55.2285,-44.7715,-100,-100,-100 -55.2285,0,-100,44.7715,-100,100 0,55.2285,44.7715,100,100,100zM100,200")
    circle.layer.add(circlePathAnimation, forKey: "path")
}.animate()
Animation(delay: 0.64, duration: 0.36, curve: .stepLeft) {
    circle.alpha = 0
}.animate()