             self.shapeLayer.addAnimation(secondStepAnimation, forKey: "second step animation")
             
             let delay = secondStepAnimationTime + firstStepAnimationTime
-            UIView.animateWithDuration(textAppearingAnimationTime, delay:delay, options: UIViewAnimationOptions.BeginFromCurrentState,
+            
+            UIView.animateWithDuration(textAppearingAnimationTime, delay: delay, options: UIViewAnimationOptions.TransitionNone,
                 animations: { () -> Void in
                     self.titleLabel?.alpha = 1.0
-                }) { (complete) -> Void in }
+                },
+                completion: { (complete) -> Void in
+                    self.showContentImage()
+                })
         }
     }
     private func animateProgressingState(layer: CAShapeLayer) {


import UIKit

/**
    ABProgressButton provides functionality for creating custom animation of UIButton during processing some task.
    Should be created in IB as custom class UIButton to prevent title of the button appearing.
*/
@IBDesignable @objc class ABProgressButton: UIButton {
    
    @IBInspectable var cornerRadius: CGFloat = 5.0
    @IBInspectable var borderWidth: CGFloat = 3.0
    @IBInspectable lazy var borderColor: UIColor = {
        return self.tintColor
    }()
    @IBInspectable lazy var circleBorderColor: UIColor = {
        return self.tintColor
    }()
    @IBInspectable var circleBorderWidth: CGFloat = 3.0
    @IBInspectable var circleRadius: CGFloat = 20.0
    @IBInspectable var circleCutAngle: CGFloat = 45.0
    @IBInspectable var circleBackgroundColor: UIColor = UIColor.whiteColor()
    private lazy var shapeBackgroundColor: UIColor = {
        return self.backgroundColor ?? self.circleBackgroundColor
    }()

    enum State {
        case Default, Progressing
    }
    var progressState: State = .Default {
        didSet {
            if(progressState == .Default) { self.updateToDefaultStateAnimated(true)}

            self.updateProgressLayer()
        }
    }
    /** **State changing**
    Should be used to change progress indicator. Should have value from 0.0 to 1.0. `progressState` should be .Progressing to allow change progress(except nil value).
    */
    var progress: CGFloat? {
        didSet {
            if progress != nil {
                assert(self.progressState == .Progressing, "Progress state should be .Progressing while changing progress value")
            }
            progress = progress == nil ? nil : min(progress!, CGFloat(1.0))
            self.updateProgressLayer()
        }
    }

// MARK : Initialization
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.privateInit()
        self.registerForNotifications()
    }
    override func awakeFromNib() {
        super.awakeFromNib()
        self.privateInit()
        self.registerForNotifications()
    }
    override func prepareForInterfaceBuilder() {
        self.privateInit()
    }
    deinit {
        self.unregisterFromNotifications()
    }

    private func privateInit() {
        if (self.useTintColorForText) { self.setTitleColor(self.tintColor, forState: UIControlState.Normal) }
        if (self.invertColorsOnHighlight) { self.setTitleColor(self.shapeBackgroundColor, forState: UIControlState.Highlighted) }
        
        self.layer.insertSublayer(self.shapeLayer, atIndex: 0)
        self.layer.insertSublayer(self.crossLayer, atIndex: 1)
        self.layer.insertSublayer(self.progressLayer, atIndex: 2)
        self.updateToDefaultStateAnimated(false)
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        self.shapeLayer.frame = self.layer.bounds
        self.crossLayer.frame = self.layer.bounds
        self.progressLayer.frame = self.layer.bounds
        self.bringSubviewToFront(self.imageView!)
    }
    
    override var highlighted: Bool {
        didSet {
            if (self.invertColorsOnHighlight) { self.imageView?.tintColor = highlighted ? self.shapeBackgroundColor : self.circleBorderColor }
            self.crossLayer.strokeColor = highlighted ? self.circleBackgroundColor.CGColor : self.circleBorderColor.CGColor
            self.progressLayer.strokeColor = highlighted ? self.circleBackgroundColor.CGColor : self.circleBorderColor.CGColor
            if (highlighted) {
