         v.contentMode = .scaleAspectFit
         v.isUserInteractionEnabled = true
         v.addGestureRecognizer(panGesture)
+        v.addGestureRecognizer(doubleTapGesture)
         return v
     }()
     
     private lazy var panGesture = UIPanGestureRecognizer(target: self, action: #selector(handleGesture(_:)))
+    private lazy var doubleTapGesture: UITapGestureRecognizer = {
+        let g = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTapGesture(_:)))
+        g.numberOfTapsRequired = 2
+        return g
+    }()
     
     private lazy var blurredView: UIVisualEffectView = {
         let v = UIVisualEffectView(effect: UIBlurEffect(style: .dark))

    private func calculateZoomScale() {
        scrollView.minimumZoomScale = 1
        guard let image = image else { return }
        let isHorizontalImg = (image.size.width / image.size.height) >= 1
        let imageViewSize = aspectFitRect(forSize: image.size, insideRect: UIScreen.main.bounds)
        scrollView.maximumZoomScale = isHorizontalImg ?  UIScreen.main.bounds.size.height / imageViewSize.height : UIScreen.main.bounds.size.width / imageViewSize.width
    }
    
    @objc private func handleGesture(_ panGesture: UIPanGestureRecognizer) {

    private var animator: ImageViewerAnimator?
    //    private var isZooming = false
    //    var shouldDismiss = false
    
    /// Create imageViewer with transition animation from view/imageview/cell...
    ///
