@@ -6,6 +6,7 @@ extension UIImageView {
66 private class TapWithDataRecognizer : UITapGestureRecognizer {
77 weak var from : UIViewController ?
88 var imageDatasource : ImageDataSource ?
9+ var imageLoader : ImageLoader ?
910 var initialIndex : Int = 0
1011 var options : [ ImageViewerOption ] = [ ]
1112 }
@@ -18,20 +19,22 @@ extension UIImageView {
1819
1920 public func setupImageViewer(
2021 options: [ ImageViewerOption ] = [ ] ,
21- from: UIViewController ? = nil ) {
22+ from: UIViewController ? = nil ,
23+ imageLoader: ImageLoader ? = nil ) {
2224 setup (
2325 datasource: SimpleImageDatasource ( imageItems: [ . image( image) ] ) ,
2426 options: options,
25- from: from)
27+ from: from,
28+ imageLoader: imageLoader)
2629 }
27-
28- #if canImport(SDWebImage)
30+
2931 public func setupImageViewer(
3032 url: URL ,
3133 initialIndex: Int = 0 ,
3234 placeholder: UIImage ? = nil ,
3335 options: [ ImageViewerOption ] = [ ] ,
34- from: UIViewController ? = nil ) {
36+ from: UIViewController ? = nil ,
37+ imageLoader: ImageLoader ? = nil ) {
3538
3639 let datasource = SimpleImageDatasource (
3740 imageItems: [ url ] . compactMap {
@@ -41,15 +44,16 @@ extension UIImageView {
4144 datasource: datasource,
4245 initialIndex: initialIndex,
4346 options: options,
44- from: from)
47+ from: from,
48+ imageLoader: imageLoader)
4549 }
46- #endif
4750
4851 public func setupImageViewer(
4952 images: [ UIImage ] ,
5053 initialIndex: Int = 0 ,
5154 options: [ ImageViewerOption ] = [ ] ,
52- from: UIViewController ? = nil ) {
55+ from: UIViewController ? = nil ,
56+ imageLoader: ImageLoader ? = nil ) {
5357
5458 let datasource = SimpleImageDatasource (
5559 imageItems: images. compactMap {
@@ -59,16 +63,17 @@ extension UIImageView {
5963 datasource: datasource,
6064 initialIndex: initialIndex,
6165 options: options,
62- from: from)
66+ from: from,
67+ imageLoader: imageLoader)
6368 }
64-
65- #if canImport(SDWebImage)
69+
6670 public func setupImageViewer(
6771 urls: [ URL ] ,
6872 initialIndex: Int = 0 ,
6973 options: [ ImageViewerOption ] = [ ] ,
7074 placeholder: UIImage ? = nil ,
71- from: UIViewController ? = nil ) {
75+ from: UIViewController ? = nil ,
76+ imageLoader: ImageLoader ? = nil ) {
7277
7378 let datasource = SimpleImageDatasource (
7479 imageItems: urls. compactMap {
@@ -78,28 +83,31 @@ extension UIImageView {
7883 datasource: datasource,
7984 initialIndex: initialIndex,
8085 options: options,
81- from: from)
86+ from: from,
87+ imageLoader: imageLoader)
8288 }
83- #endif
8489
8590 public func setupImageViewer(
8691 datasource: ImageDataSource ,
8792 initialIndex: Int = 0 ,
8893 options: [ ImageViewerOption ] = [ ] ,
89- from: UIViewController ? = nil ) {
94+ from: UIViewController ? = nil ,
95+ imageLoader: ImageLoader ? = nil ) {
9096
9197 setup (
9298 datasource: datasource,
9399 initialIndex: initialIndex,
94100 options: options,
95- from: from)
101+ from: from,
102+ imageLoader: imageLoader)
96103 }
97104
98105 private func setup(
99106 datasource: ImageDataSource ? ,
100107 initialIndex: Int = 0 ,
101108 options: [ ImageViewerOption ] = [ ] ,
102- from: UIViewController ? = nil ) {
109+ from: UIViewController ? = nil ,
110+ imageLoader: ImageLoader ? = nil ) {
103111
104112 var _tapRecognizer : TapWithDataRecognizer ?
105113 gestureRecognizers? . forEach {
@@ -121,6 +129,7 @@ extension UIImageView {
121129 }
122130 // Pass the Data
123131 _tapRecognizer!. imageDatasource = datasource
132+ _tapRecognizer!. imageLoader = imageLoader
124133 _tapRecognizer!. initialIndex = initialIndex
125134 _tapRecognizer!. options = options
126135 _tapRecognizer!. from = from
@@ -133,6 +142,7 @@ extension UIImageView {
133142 let imageCarousel = ImageCarouselViewController . init (
134143 sourceView: sourceView,
135144 imageDataSource: sender. imageDatasource,
145+ imageLoader: sender. imageLoader ?? URLSessionImageLoader ( ) ,
136146 options: sender. options,
137147 initialIndex: sender. initialIndex)
138148 let presentFromVC = sender. from ?? vc
0 commit comments