Browse Source

new view image

marinofaggiana 4 years ago
parent
commit
a5b43edb79
1 changed files with 46 additions and 52 deletions
  1. 46 52
      iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

+ 46 - 52
iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

@@ -35,23 +35,22 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
     override func viewDidLoad() {
         super.viewDidLoad()
         
-        self.pageViewController.delegate = self
-        self.pageViewController.dataSource = self
-        self.panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPanWith(gestureRecognizer:)))
-        self.panGestureRecognizer.delegate = self
-        self.pageViewController.view.addGestureRecognizer(self.panGestureRecognizer)
+        pageViewController.delegate = self
+        pageViewController.dataSource = self
+        panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPanWith(gestureRecognizer:)))
+        panGestureRecognizer.delegate = self
+        pageViewController.view.addGestureRecognizer(self.panGestureRecognizer)
         
-        self.singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didSingleTapWith(gestureRecognizer:)))
-        self.pageViewController.view.addGestureRecognizer(self.singleTapGestureRecognizer)
+        singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didSingleTapWith(gestureRecognizer:)))
+        pageViewController.view.addGestureRecognizer(self.singleTapGestureRecognizer)
         
-        let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
-        vc.delegate = self
-        vc.index = self.currentIndex
-        vc.image = getImageFromMetadata(metadatas[currentIndex])
-        self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
-        let viewControllers = [vc]
+        let viewerImageZoom = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "NCViewerImageZoom") as! NCViewerImageZoom
+        viewerImageZoom.delegate = self
+        viewerImageZoom.index = currentIndex
+        viewerImageZoom.image = getImageFromMetadata(metadatas[currentIndex])
+        singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
         
-        self.pageViewController.setViewControllers(viewControllers, direction: .forward, animated: true, completion: nil)
+        pageViewController.setViewControllers([viewerImageZoom], direction: .forward, animated: true, completion: nil)
     }
     
     func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
@@ -77,7 +76,7 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
     
     func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
         
-        if otherGestureRecognizer == self.currentViewController.scrollView.panGestureRecognizer {
+        if otherGestureRecognizer == currentViewController.scrollView.panGestureRecognizer {
             if self.currentViewController.scrollView.contentOffset.y == 0 {
                 return true
             }
@@ -85,27 +84,22 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
         
         return false
     }
-    
-    override func didReceiveMemoryWarning() {
-        super.didReceiveMemoryWarning()
-        // Dispose of any resources that can be recreated.
-    }
-    
+
     @objc func didPanWith(gestureRecognizer: UIPanGestureRecognizer) {
         switch gestureRecognizer.state {
         case .began:
-            self.currentViewController.scrollView.isScrollEnabled = false
-            self.transitionController.isInteractive = true
-            let _ = self.navigationController?.popViewController(animated: true)
+            currentViewController.scrollView.isScrollEnabled = false
+            transitionController.isInteractive = true
+            navigationController?.popViewController(animated: true)
         case .ended:
-            if self.transitionController.isInteractive {
-                self.currentViewController.scrollView.isScrollEnabled = true
-                self.transitionController.isInteractive = false
-                self.transitionController.didPanWith(gestureRecognizer: gestureRecognizer)
+            if transitionController.isInteractive {
+                currentViewController.scrollView.isScrollEnabled = true
+                transitionController.isInteractive = false
+                transitionController.didPanWith(gestureRecognizer: gestureRecognizer)
             }
         default:
-            if self.transitionController.isInteractive {
-                self.transitionController.didPanWith(gestureRecognizer: gestureRecognizer)
+            if transitionController.isInteractive {
+                transitionController.didPanWith(gestureRecognizer: gestureRecognizer)
             }
         }
     }
@@ -123,7 +117,7 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
     
     func changeScreenMode(to: ScreenMode) {
         if to == .full {
-            self.navigationController?.setNavigationBarHidden(true, animated: false)
+            navigationController?.setNavigationBarHidden(true, animated: false)
             UIView.animate(withDuration: 0.25,
                            animations: {
                             self.view.backgroundColor = .black
@@ -131,7 +125,7 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
             }, completion: { completed in
             })
         } else {
-            self.navigationController?.setNavigationBarHidden(false, animated: false)
+            navigationController?.setNavigationBarHidden(false, animated: false)
             UIView.animate(withDuration: 0.25,
                            animations: {
                             if #available(iOS 13.0, *) {
@@ -161,12 +155,12 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
             return nil
         }
         
-        let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
-        vc.delegate = self
-        vc.image = getImageFromMetadata(metadatas[currentIndex - 1])
-        vc.index = currentIndex - 1
-        self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
-        return vc
+        let viewerImageZoom = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "NCViewerImageZoom") as! NCViewerImageZoom
+        viewerImageZoom.delegate = self
+        viewerImageZoom.image = getImageFromMetadata(metadatas[currentIndex - 1])
+        viewerImageZoom.index = currentIndex - 1
+        self.singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
+        return viewerImageZoom
         
     }
     
@@ -176,12 +170,12 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
             return nil
         }
         
-        let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
-        vc.delegate = self
-        self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
-        vc.image = getImageFromMetadata(metadatas[currentIndex + 1])
-        vc.index = currentIndex + 1
-        return vc
+        let viewerImageZoom = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "NCViewerImageZoom") as! NCViewerImageZoom
+        viewerImageZoom.delegate = self
+        singleTapGestureRecognizer.require(toFail: viewerImageZoom.doubleTapGestureRecognizer)
+        viewerImageZoom.image = getImageFromMetadata(metadatas[currentIndex + 1])
+        viewerImageZoom.index = currentIndex + 1
+        return viewerImageZoom
         
     }
     
@@ -198,12 +192,12 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
         
         if (completed && self.nextIndex != nil) {
             previousViewControllers.forEach { vc in
-                let zoomVC = vc as! NCViewerImageZoom
-                zoomVC.scrollView.zoomScale = zoomVC.scrollView.minimumZoomScale
+                let viewerImageZoom = vc as! NCViewerImageZoom
+                viewerImageZoom.scrollView.zoomScale = viewerImageZoom.scrollView.minimumZoomScale
             }
 
-            self.currentIndex = self.nextIndex!
-            self.delegate?.containerViewController(self, indexDidUpdate: self.currentIndex)
+            currentIndex = nextIndex!
+            delegate?.containerViewController(self, indexDidUpdate: currentIndex)
         }
         
         self.nextIndex = nil
@@ -214,9 +208,9 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
 extension NCViewerImagePageContainer: NCViewerImageZoomDelegate {
     
     func viewerImageZoom(_ viewerImageZoom: NCViewerImageZoom, scrollViewDidScroll scrollView: UIScrollView) {
-        if scrollView.zoomScale != scrollView.minimumZoomScale && self.currentMode != .full {
-            self.changeScreenMode(to: .full)
-            self.currentMode = .full
+        if scrollView.zoomScale != scrollView.minimumZoomScale && currentMode != .full {
+            changeScreenMode(to: .full)
+            currentMode = .full
         }
     }
 }
@@ -234,6 +228,6 @@ extension NCViewerImagePageContainer: ZoomAnimatorDelegate {
     }
     
     func referenceImageViewFrameInTransitioningView(for zoomAnimator: ZoomAnimator) -> CGRect? {        
-        return self.currentViewController.scrollView.convert(self.currentViewController.imageView.frame, to: self.currentViewController.view)
+        return currentViewController.scrollView.convert(currentViewController.imageView.frame, to: currentViewController.view)
     }
 }