Skip to content

Commit d07525f

Browse files
committed
[refactor] just use the same TapWithDataRecognizer for each imageView.
1 parent 342ac4c commit d07525f

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

Sources/UIImageView_Extensions.swift

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,28 @@ extension UIImageView {
8181
initialIndex:Int = 0,
8282
options:[ImageViewerOption] = []) {
8383

84+
var _tapRecognizer:TapWithDataRecognizer?
8485
gestureRecognizers?.forEach {
85-
if let _ = $0 as? UITapGestureRecognizer {
86-
return
86+
if let _tr = $0 as? TapWithDataRecognizer {
87+
// if found, just use existing
88+
_tapRecognizer = _tr
8789
}
8890
}
8991

9092
isUserInteractionEnabled = true
9193
contentMode = .scaleAspectFill
9294

93-
let _tapRecognizer = TapWithDataRecognizer(
94-
target: self, action: #selector(showImageViewer(_:)))
95-
_tapRecognizer.numberOfTouchesRequired = 1
96-
_tapRecognizer.numberOfTapsRequired = 1
97-
95+
if _tapRecognizer == nil {
96+
_tapRecognizer = TapWithDataRecognizer(
97+
target: self, action: #selector(showImageViewer(_:)))
98+
_tapRecognizer!.numberOfTouchesRequired = 1
99+
_tapRecognizer!.numberOfTapsRequired = 1
100+
}
98101
// Pass the Data
99-
_tapRecognizer.imageDatasource = datasource
100-
_tapRecognizer.initialIndex = initialIndex
101-
_tapRecognizer.options = options
102-
addGestureRecognizer(_tapRecognizer)
102+
_tapRecognizer!.imageDatasource = datasource
103+
_tapRecognizer!.initialIndex = initialIndex
104+
_tapRecognizer!.options = options
105+
addGestureRecognizer(_tapRecognizer!)
103106
}
104107

105108
@objc

0 commit comments

Comments
 (0)