     public func show() {
         let keyWindow = UIApplication.shared.keyWindow
         keyWindow?.addSubview(self)
+        animator?.removeAllBehaviors()
         
         let snapBehaviour = UISnapBehavior.init(item: self.alertView, snapTo: (keyWindow?.center)!)
-        snapBehaviour.damping = 0.51
-        self.animator?.addBehavior(snapBehaviour)
-        
-        UIView.animate(withDuration: 0.1, animations: {
-            self.backgroundView.alpha = 1.0
-        }, completion: { (finished) in
-            self.addGesture()
-        })
-    }
-    
-    public func dismiss() {
+        snapBehaviour.damping = 0.5
+        
+        self.backgroundView.alpha = 0.0
+        self.alertView.isHidden = true
+        self.alertView.center.x = keyWindow?.center.x ?? 160
+        self.alertView.alpha = 0.0
+        
+        UIView.animate(withDuration: 0.15, delay: 0, options: [.curveEaseInOut], animations: {[weak self] in
+            self?.backgroundView.alpha = 1.0
+            self?.alertView.alpha = 1.0
+        }) {[weak self] (isFinished) in
+            self?.alertView.isHidden = false
+            self?.animator?.addBehavior(snapBehaviour)
+            self?.addGesture()
+        }
+    }
+    
+    public func dismiss(animated:Bool) {
         let keyWindow = UIApplication.shared.keyWindow
         self.animator?.removeAllBehaviors()
         
+        if animated {
         UIView.perform(.delete, on: [self.alertView], options: .curveEaseInOut, animations: {[weak self] in
             self?.backgroundView.alpha = 0.0
             keyWindow?.tintAdjustmentMode = .automatic

                let location = gestureRecognizer.location(in: senderView.superview)
                let closeSuperView = self.isTappedOutsideRegion(self.alertView, withLocation: location)
                if closeSuperView == true {
                    self.dismiss()
                }
            }
        }

import Foundation
import UIKit

/**
 Enum to describe AlertView background.
 */
enum AUBackgroundOptions {
    case BlurEffectExtraLight
    case BlurEffectLight
