         
         cancelButtonBottom.constant = initialBottomSpace
         
-        UIView.animateWithDuration(theme.showAnimationDuration, delay: 0, options: UIViewAnimationOptions(rawValue: 7 << 16), animations: {
+        UIView.animateWithDuration(theme.showAnimationDuration, delay: 0, options: UIViewAnimationOptions(rawValue: 7 << 16), animations: { 
             self.layoutIfNeeded()
-        }, completion: completion)
+        }) { (finished) in
+            completion?(finished)
+            self.animating = false
+        }
     }
     
     public func dismiss(completion: ((Bool) -> Void)? = nil) {

    public private(set) var parentViewController: UIViewController!
    
    private var showing: Bool = false
    private var lastViewBottom: NSLayoutConstraint?
    
    public class func view(parentViewController viewController: UIViewController, theme: KUIActionSheetProtocol = KUIActionSheetDefault()) -> KUIActionSheet? {

        }
        
        showing = false
        animating = true
        userInteractionEnabled = false
        cancelButtonBottom.constant = -CGRectGetHeight(parentViewController.rootViewController.view.frame)
        
        UIView.animateWithDuration(theme.dimissAnimationDuration, delay: 0, options: UIViewAnimationOptions(rawValue: 7 << 16), animations: {
