         let mPath = UIBezierPath(arcCenter: CGPointMake(CGRectGetMidX(backgroundRect.bounds), CGRectGetMidY(backgroundRect.bounds)), radius: 30.0, startAngle: 0, endAngle: CGFloat(M_PI) / 180 * 3.6 * multiplier, clockwise: true)
         let iPath = UIBezierPath(arcCenter: CGPointMake(CGRectGetMidX(backgroundRect.bounds), CGRectGetMidY(backgroundRect.bounds)), radius: 20.0, startAngle: 0, endAngle: CGFloat(M_PI) / 180 * 3.6 * multiplier, clockwise: true)
         
-//        dispatch_async(dispatch_get_main_queue(), { () -> Void in
-//            CATransaction.begin()
-//            CATransaction.setAnimationDuration(0.5)
-        
-            self.outerCircle.path = oPath.CGPath
-            self.middleCircle.path = mPath.CGPath
-            self.innerCircle.path = iPath.CGPath
-//            CATransaction.commit()
-//        })
+        self.outerCircle.path = oPath.CGPath
+        self.middleCircle.path = mPath.CGPath
+        self.innerCircle.path = iPath.CGPath
     }
     
 }

        CATransaction.commit()
        
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.8 * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), { () -> Void in
            self.showCheckmark()
        })
    }
    
    func showCheckmark() {
        let group = CGRectMake(CGRectGetMinX(backgroundRect.bounds) + 3, CGRectGetMinY(backgroundRect.bounds) + 3, CGRectGetWidth(backgroundRect.bounds) - 6, CGRectGetHeight(backgroundRect.bounds) - 6);
        let checkmark = UIBezierPath()
        checkmark.moveToPoint(CGPointMake(CGRectGetMinX(group) + 0.40983 * CGRectGetWidth(group), CGRectGetMinY(group) + 0.49167 * CGRectGetHeight(group)))
        checkmark.addLineToPoint(CGPointMake(CGRectGetMinX(group) + 0.46667 * CGRectGetWidth(group), CGRectGetMinY(group) + 0.65750 * CGRectGetHeight(group)))
        checkmark.addLineToPoint(CGPointMake(CGRectGetMinX(group) + 0.58500 * CGRectGetWidth(group), CGRectGetMinY(group) + 0.38417 * CGRectGetHeight(group)))
        checkmark.lineCapStyle = .Square
        
        let checkmarkShape = CAShapeLayer()
        checkmarkShape.path = checkmark.CGPath
        checkmarkShape.strokeColor = UIColor.gs_colorWithRGB(82.0, green: 124.0, blue: 194.0, alpha: 1.0).CGColor
        checkmarkShape.fillColor = UIColor.clearColor().CGColor
        checkmarkShape.lineWidth = 2.0
        checkmarkShape.rasterizationScale = UIScreen.mainScreen().scale
        backgroundRect.layer.addSublayer(checkmarkShape)
        


import UIKit

final class ViewController2: UIViewController {
    
    private var backgroundRect = UIView()
    private var outerCircle = CAShapeLayer()
