         }
     }
     
-    func hide() {
+    func hide(completion: ( () -> Void )? = nil) {
         if self.animate {
             var frame = self.baseView.frame
             frame.origin.y += self.baseViewHeight

        
        hud.show(timeout: ZLPhotoConfiguration.default().timeout)
        
        guard ZLPhotoConfiguration.default().shouldAnialysisAsset else {
            hud.hide()
            self.selectImageBlock?([], self.arrSelectedModels.map { $0.asset }, self.isSelectOriginal)
            self.arrSelectedModels.removeAll()
            self.hide()
            viewController?.dismiss(animated: true, completion: nil)
            return
        }
        

            }) { (_) in
                self.isHidden = true
                self.removeFromSuperview()
                completion?()
            }
        } else {
            self.isHidden = true
            self.removeFromSuperview()
            completion?()
        }
        
        if let temp = self.senderTabBarIsHidden {
