diff --git a/ImageViewer/ImageViewerController.swift b/ImageViewer/ImageViewerController.swift
index 84fd3dd..b0f4fb8 100644
--- a/ImageViewer/ImageViewerController.swift
+++ b/ImageViewer/ImageViewerController.swift
@@ -5,7 +5,8 @@ public final class ImageViewerController: UIViewController {
@IBOutlet fileprivate var scrollView: UIScrollView!
@IBOutlet fileprivate var imageView: UIImageView!
@IBOutlet fileprivate var activityIndicator: UIActivityIndicatorView!
-
+ @IBOutlet fileprivate var closeButton: UIButton!
+
fileprivate var transitionHandler: ImageViewerTransitioningHandler?
fileprivate let configuration: ImageViewerConfiguration?
@@ -65,10 +66,16 @@ private extension ImageViewerController {
}
func setupGestureRecognizers() {
- let tapGestureRecognizer = UITapGestureRecognizer()
- tapGestureRecognizer.numberOfTapsRequired = 2
- tapGestureRecognizer.addTarget(self, action: #selector(imageViewDoubleTapped))
- imageView.addGestureRecognizer(tapGestureRecognizer)
+ let doubleTapGestureRecognizer = UITapGestureRecognizer()
+ doubleTapGestureRecognizer.numberOfTapsRequired = 2
+ doubleTapGestureRecognizer.addTarget(self, action: #selector(imageViewDoubleTapped))
+ imageView.addGestureRecognizer(doubleTapGestureRecognizer)
+
+ let singleTapGestureRecognizer = UITapGestureRecognizer()
+ singleTapGestureRecognizer.numberOfTapsRequired = 1
+ singleTapGestureRecognizer.addTarget(self, action: #selector(imageViewSingleTapped))
+ singleTapGestureRecognizer.require(toFail: doubleTapGestureRecognizer)
+ imageView.addGestureRecognizer(singleTapGestureRecognizer)
let panGestureRecognizer = UIPanGestureRecognizer()
panGestureRecognizer.addTarget(self, action: #selector(imageViewPanned(_:)))
@@ -105,6 +112,19 @@ private extension ImageViewerController {
scrollView.setZoomScale(scrollView.maximumZoomScale, animated: true)
}
}
+
+ @objc func imageViewSingleTapped() {
+ let presenting = closeButton.isHidden
+ if presenting {
+ closeButton.isHidden = false
+ closeButton.alpha = 0.0
+ }
+ UIView.animate(withDuration: 0.25, animations: {
+ self.closeButton.alpha = presenting ? 1.0 : 0.0
+ }) { _ in
+ self.closeButton.isHidden = !presenting
+ }
+ }
@objc func imageViewPanned(_ recognizer: UIPanGestureRecognizer) {
guard transitionHandler != nil else { return }
diff --git a/ImageViewer/Info.plist b/ImageViewer/Info.plist
index a246732..728d01b 100644
--- a/ImageViewer/Info.plist
+++ b/ImageViewer/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 1.1.1
+ 1.1.2
CFBundleVersion
$(CURRENT_PROJECT_VERSION)
NSPrincipalClass
@@ -24,6 +24,8 @@
LaunchScreen
UIMainStoryboardFile
Main
+ UIRequiresFullScreen
+
UIStatusBarStyle
UIStatusBarStyleLightContent
UISupportedInterfaceOrientations
diff --git a/ImageViewer/Resources/ImageViewerController.xib b/ImageViewer/Resources/ImageViewerController.xib
index 07595fc..56d463b 100644
--- a/ImageViewer/Resources/ImageViewerController.xib
+++ b/ImageViewer/Resources/ImageViewerController.xib
@@ -1,11 +1,11 @@
-
+
-
+
@@ -13,6 +13,7 @@
+
diff --git a/SimpleImageViewer.podspec b/SimpleImageViewer.podspec
index 4e45dc6..c064867 100644
--- a/SimpleImageViewer.podspec
+++ b/SimpleImageViewer.podspec
@@ -4,7 +4,7 @@ Pod::Spec.new do |s|
s.name = "SimpleImageViewer"
s.summary = "A snappy image viewer with zoom and interactive dismissal transition."
s.requires_arc = true
- s.version = "1.1.1"
+ s.version = "1.1.2"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Lucas" => "lucas@afrogleap.com" }
s.homepage = "https://github.com/aFrogleap/SimpleImageViewer"
diff --git a/SimpleImageViewer.xcodeproj/project.pbxproj b/SimpleImageViewer.xcodeproj/project.pbxproj
index dbe15e0..70fc3bf 100644
--- a/SimpleImageViewer.xcodeproj/project.pbxproj
+++ b/SimpleImageViewer.xcodeproj/project.pbxproj
@@ -282,7 +282,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0830;
- LastUpgradeCheck = 0900;
+ LastUpgradeCheck = 0930;
ORGANIZATIONNAME = aFrogleap;
TargetAttributes = {
A02EE5D31EF1897D000EAB41 = {
@@ -449,6 +449,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -456,6 +457,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -506,6 +508,7 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
@@ -513,6 +516,7 @@
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
diff --git a/SimpleImageViewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SimpleImageViewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/SimpleImageViewer.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/SimpleImageViewer.xcodeproj/xcshareddata/xcschemes/SimpleImageViewer.xcscheme b/SimpleImageViewer.xcodeproj/xcshareddata/xcschemes/SimpleImageViewer.xcscheme
index bf75f27..b8d09c3 100644
--- a/SimpleImageViewer.xcodeproj/xcshareddata/xcschemes/SimpleImageViewer.xcscheme
+++ b/SimpleImageViewer.xcodeproj/xcshareddata/xcschemes/SimpleImageViewer.xcscheme
@@ -1,6 +1,6 @@