Skip to content

Commit 0119309

Browse files
authored
Merge pull request #287 from kitwtnb/remove-dependency-on-specific-image-request-library
Remove dependencies on specific image request library
2 parents 2ac28e0 + 3ac333b commit 0119309

File tree

7 files changed

+24
-24
lines changed

7 files changed

+24
-24
lines changed

Lightbox.podspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ Pod::Spec.new do |s|
1313
s.ios.resource = 'Resources/Lightbox.bundle'
1414

1515
s.frameworks = 'UIKit', 'AVFoundation', 'AVKit'
16-
s.dependency 'SDWebImage'
1716
s.swift_version = '5.0'
1817

1918
end

Package.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@ let package = Package(
88
name: "Lightbox",
99
targets: ["Lightbox"]),
1010
],
11-
dependencies: [
12-
.package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.1.0")
13-
],
11+
dependencies: [],
1412
targets: [
1513
.target(
1614
name: "Lightbox",
17-
dependencies: ["SDWebImage"],
15+
dependencies: [],
1816
path: "Source"
1917
)
2018
],

Source/LightboxConfig.swift

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import UIKit
22
import AVKit
33
import AVFoundation
4-
import SDWebImage
54

65
public class LightboxConfig {
76
/// Whether to show status bar while Lightbox is presented
@@ -20,13 +19,7 @@ public class LightboxConfig {
2019
}
2120

2221
/// How to load image onto SDAnimatedImageView
23-
public static var loadImage: (SDAnimatedImageView, URL, ((UIImage?) -> Void)?) -> Void = { (imageView, imageURL, completion) in
24-
25-
// Use SDWebImage by default
26-
imageView.sd_setImage(with: imageURL) { image, error, _ , _ in
27-
completion?(image)
28-
}
29-
}
22+
public static var loadImage: ((UIImageView, URL, ((UIImage?) -> Void)?) -> Void)?
3023

3124
/// Indicator is used to show while image is being fetched
3225
public static var makeLoadingIndicator: () -> UIView = {

Source/LightboxController.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import UIKit
2-
import SDWebImage
32

43
public protocol LightboxControllerPageDelegate: AnyObject {
54

@@ -57,8 +56,8 @@ open class LightboxController: UIViewController {
5756
return view
5857
}()
5958

60-
lazy var backgroundView: SDAnimatedImageView = {
61-
let view = SDAnimatedImageView()
59+
lazy var backgroundView: UIImageView = {
60+
let view = UIImageView()
6261
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
6362

6463
return view
@@ -398,7 +397,7 @@ extension LightboxController: UIScrollViewDelegate {
398397

399398
extension LightboxController: PageViewDelegate {
400399

401-
func remoteImageDidLoad(_ image: UIImage?, imageView: SDAnimatedImageView) {
400+
func remoteImageDidLoad(_ image: UIImage?, imageView: UIImageView) {
402401
guard let image = image, dynamicBackground else {
403402
return
404403
}

Source/LightboxImage.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import UIKit
2-
import SDWebImage
32

43
open class LightboxImage {
54

@@ -33,12 +32,19 @@ open class LightboxImage {
3332
self.videoURL = videoURL
3433
}
3534

36-
open func addImageTo(_ imageView: SDAnimatedImageView, completion: ((UIImage?) -> Void)? = nil) {
35+
open func addImageTo(_ imageView: UIImageView, completion: ((UIImage?) -> Void)? = nil) {
3736
if let image = image {
3837
imageView.image = image
3938
completion?(image)
4039
} else if let imageURL = imageURL {
41-
LightboxConfig.loadImage(imageView, imageURL, completion)
40+
guard let loadImage = LightboxConfig.loadImage else {
41+
print("Lightbox: To use `imageURL`, you must use `LightboxConfig.loadImage`.")
42+
imageView.image = nil
43+
completion?(nil)
44+
return
45+
}
46+
47+
loadImage(imageView, imageURL, completion)
4248
} else if let imageClosure = imageClosure {
4349
let img = imageClosure()
4450
imageView.image = img

Source/Views/PageView.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
import UIKit
2-
import SDWebImage
32

43
protocol PageViewDelegate: AnyObject {
54

65
func pageViewDidZoom(_ pageView: PageView)
7-
func remoteImageDidLoad(_ image: UIImage?, imageView: SDAnimatedImageView)
6+
func remoteImageDidLoad(_ image: UIImage?, imageView: UIImageView)
87
func pageView(_ pageView: PageView, didTouchPlayButton videoURL: URL)
98
func pageViewDidTouch(_ pageView: PageView)
109
func pageViewDidTap(_ pageView: PageView)
1110
func pageViewDidDoubleTap(_ pageView: PageView)}
1211

1312
class PageView: UIScrollView {
1413

15-
lazy var imageView: SDAnimatedImageView = {
16-
let imageView = SDAnimatedImageView()
14+
lazy var imageView: UIImageView = {
15+
let imageView = UIImageView()
1716
imageView.contentMode = .scaleAspectFit
1817
imageView.clipsToBounds = true
1918
imageView.isUserInteractionEnabled = true

iOSDemo/ViewController.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import UIKit
22
import Lightbox
3+
import SDWebImage
34

45
class ViewController: UIViewController {
56

@@ -23,6 +24,11 @@ class ViewController: UIViewController {
2324
view.addSubview(showButton)
2425
title = "Lightbox"
2526
LightboxConfig.preload = 2
27+
LightboxConfig.loadImage = { imageView, url, completion in
28+
imageView.sd_setImage(with: url) { image, _, _ , _ in
29+
completion?(image)
30+
}
31+
}
2632
}
2733

2834
// MARK: - Action methods

0 commit comments

Comments
 (0)