Skip to content

Commit d05d6b5

Browse files
committed
hide or show close button
1 parent 3dd3cea commit d05d6b5

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

Sources/ImageCarouselViewController.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class ImageCarouselViewController:UIPageViewController {
4646

4747
navItem.leftBarButtonItem = closeBarButton
4848
navItem.leftBarButtonItem?.tintColor = theme.tintColor
49-
49+
navBar.alpha = 0.0
5050
navBar.items = [navItem]
5151
navBar.insert(to: view)
5252
}
@@ -81,7 +81,6 @@ class ImageCarouselViewController:UIPageViewController {
8181

8282
let initialVC = ImageViewerController(sourceView: sourceView)
8383
initialVC.index = initialIndex
84-
initialVC.backgroundView = backgroundView
8584
if let imageDatasource = imageDatasource {
8685
initialVC.imageItem = imageDatasource.imageItem(at: initialIndex)
8786
} else {
@@ -126,7 +125,6 @@ extension ImageCarouselViewController:UIPageViewControllerDataSource {
126125
index: newIndex,
127126
imageItem: imageDatasource.imageItem(at: newIndex),
128127
sourceView: sourceView,
129-
backgroundView: backgroundView,
130128
delegate: self)
131129
}
132130

@@ -144,7 +142,6 @@ extension ImageCarouselViewController:UIPageViewControllerDataSource {
144142
index: newIndex,
145143
imageItem: imageDatasource.imageItem(at: newIndex),
146144
sourceView: sourceView,
147-
backgroundView: backgroundView,
148145
delegate: self)
149146
}
150147
}

Sources/ImageViewerController.swift

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,25 @@ protocol ImageViewerControllerDelegate:class {
55
func imageViewerDidClose(_ imageViewer: ImageViewerController)
66
}
77

8-
class ImageViewerController : UIViewController, UIGestureRecognizerDelegate {
8+
class ImageViewerController:UIViewController, UIGestureRecognizerDelegate {
99

1010
var index:Int = 0
1111
weak var delegate:ImageViewerControllerDelegate?
1212
var imageItem:ImageItem!
1313
var animateOnDidAppear:Bool = false
1414
var sourceView:UIImageView?
15-
var backgroundView:UIView?
15+
16+
var backgroundView:UIView? {
17+
guard let _parent = parent as? ImageCarouselViewController
18+
else { return nil}
19+
return _parent.backgroundView
20+
}
21+
22+
var navBar:UINavigationBar? {
23+
guard let _parent = parent as? ImageCarouselViewController
24+
else { return nil}
25+
return _parent.navBar
26+
}
1627

1728
private var top:NSLayoutConstraint!
1829
private var leading:NSLayoutConstraint!
@@ -144,12 +155,20 @@ class ImageViewerController : UIViewController, UIGestureRecognizerDelegate {
144155
pinchRecognizer.numberOfTouchesRequired = 2
145156
scrollView.addGestureRecognizer(pinchRecognizer)
146157

158+
let singleTapGesture = UITapGestureRecognizer(
159+
target: self, action: #selector(didSingleTap(_:)))
160+
singleTapGesture.numberOfTapsRequired = 1
161+
singleTapGesture.numberOfTouchesRequired = 1
162+
scrollView.addGestureRecognizer(singleTapGesture)
163+
147164
let doubleTapRecognizer = UITapGestureRecognizer(
148165
target: self, action: #selector(didDoubleTap(_:)))
149166
doubleTapRecognizer.numberOfTapsRequired = 2
150167
doubleTapRecognizer.numberOfTouchesRequired = 1
151168
scrollView.addGestureRecognizer(doubleTapRecognizer)
152169
scrollView.maximumZoomScale = 4.0
170+
171+
singleTapGesture.require(toFail: doubleTapRecognizer)
153172
}
154173

155174
func updateMinZoomScaleForSize(_ size: CGSize) {
@@ -233,6 +252,15 @@ class ImageViewerController : UIViewController, UIGestureRecognizerDelegate {
233252
scrollView.setZoomScale(newZoomScale, animated: true)
234253
}
235254

255+
@objc
256+
func didSingleTap(_ recognizer: UITapGestureRecognizer) {
257+
258+
let currentNavAlpha = self.navBar?.alpha ?? 0.0
259+
UIView.animate(withDuration: 0.235) {
260+
self.navBar?.alpha = currentNavAlpha > 0.5 ? 0.0 : 1.0
261+
}
262+
}
263+
236264
@objc
237265
func didDoubleTap(_ recognizer:UITapGestureRecognizer) {
238266
let pointInView = recognizer.location(in: imageView)
@@ -289,14 +317,12 @@ extension ImageViewerController {
289317
index: Int,
290318
imageItem:ImageItem,
291319
sourceView:UIImageView?,
292-
backgroundView:UIView?,
293320
delegate:ImageViewerControllerDelegate) -> ImageViewerController {
294321

295322
let newVC = ImageViewerController()
296323
newVC.index = index
297324
newVC.imageItem = imageItem
298325
newVC.sourceView = sourceView
299-
newVC.backgroundView = backgroundView
300326
newVC.delegate = delegate
301327
return newVC
302328
}

0 commit comments

Comments
 (0)