add single tap to dismiss
This commit is contained in:
parent
d4df387efe
commit
f162983b70
|
|
@ -9,8 +9,8 @@
|
|||
import UIKit
|
||||
|
||||
@objc protocol SKDetectingImageViewDelegate {
|
||||
func handleImageViewSingleTap(view: UIImageView, touch: UITouch)
|
||||
func handleImageViewDoubleTap(view: UIImageView, touch: UITouch)
|
||||
func handleImageViewSingleTap(touchPoint: CGPoint)
|
||||
func handleImageViewDoubleTap(touchPoint: CGPoint)
|
||||
}
|
||||
|
||||
class SKDetectingImageView: UIImageView {
|
||||
|
|
@ -23,24 +23,22 @@ class SKDetectingImageView: UIImageView {
|
|||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
userInteractionEnabled = true
|
||||
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap(_:)))
|
||||
doubleTap.numberOfTapsRequired = 2
|
||||
doubleTap.numberOfTouchesRequired = 1
|
||||
self.addGestureRecognizer(doubleTap)
|
||||
let singleTap = UITapGestureRecognizer(target: self, action: #selector(handleSingleTap(_:)))
|
||||
singleTap.numberOfTapsRequired = 1
|
||||
singleTap.numberOfTouchesRequired = 1
|
||||
singleTap.requireGestureRecognizerToFail(doubleTap)
|
||||
self.addGestureRecognizer(singleTap)
|
||||
}
|
||||
|
||||
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
|
||||
super.touchesEnded(touches, withEvent: event)
|
||||
|
||||
let touch = touches.first!
|
||||
switch touch.tapCount {
|
||||
case 1 : handleSingleTap(touch)
|
||||
case 2 : handleDoubleTap(touch)
|
||||
default: break
|
||||
}
|
||||
nextResponder()
|
||||
func handleDoubleTap(recognizer:UITapGestureRecognizer) {
|
||||
delegate?.handleImageViewDoubleTap(recognizer.locationInView(self))
|
||||
}
|
||||
|
||||
func handleSingleTap(touch: UITouch) {
|
||||
delegate?.handleImageViewSingleTap(self, touch: touch)
|
||||
}
|
||||
func handleDoubleTap(touch: UITouch) {
|
||||
delegate?.handleImageViewDoubleTap(self, touch: touch)
|
||||
func handleSingleTap(recognizer:UITapGestureRecognizer) {
|
||||
delegate?.handleImageViewSingleTap(recognizer.locationInView(self))
|
||||
}
|
||||
}
|
||||
|
|
@ -306,14 +306,11 @@ public class SKZoomingScrollView: UIScrollView, UIScrollViewDelegate, SKDetectin
|
|||
}
|
||||
|
||||
// MARK: - SKDetectingImageViewDelegate
|
||||
func handleImageViewSingleTap(view: UIImageView, touch: UITouch) {
|
||||
if photoBrowser?.areControlsHidden() == false && photoBrowser?.enableSingleTapDismiss == true {
|
||||
photoBrowser?.determineAndClose()
|
||||
}
|
||||
photoBrowser?.toggleControls()
|
||||
func handleImageViewSingleTap(touchPoint: CGPoint) {
|
||||
photoBrowser?.performCloseAnimationWithScrollView(self)
|
||||
}
|
||||
|
||||
func handleImageViewDoubleTap(view: UIImageView, touch: UITouch) {
|
||||
handleDoubleTap(touch.locationInView(view))
|
||||
func handleImageViewDoubleTap(touchPoint: CGPoint) {
|
||||
handleDoubleTap(touchPoint)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue