Use Javascript to fetch to the image for the ImageViewController

This commit is contained in:
Maurice Parker
2019-10-13 19:41:34 -05:00
parent a1f26898c8
commit 4759cedd35
5 changed files with 63 additions and 52 deletions

View File

@@ -11,55 +11,29 @@ import UIKit
class ImageViewController: UIViewController {
@IBOutlet weak var shareButton: UIButton!
@IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
@IBOutlet weak var imageScrollView: ImageScrollView!
private var dataTask: URLSessionDataTask? = nil
private var image: UIImage?
var url: URL!
var image: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
activityIndicatorView.isHidden = false
activityIndicatorView.startAnimating()
imageScrollView.setup()
imageScrollView.imageScrollViewDelegate = self
imageScrollView.imageContentMode = .aspectFit
imageScrollView.initialOffset = .center
dataTask = URLSession.shared.dataTask(with: url) { [weak self] data, response, error in
guard let self = self else { return }
if let data = data, let image = UIImage(data: data) {
self.image = image
DispatchQueue.main.async {
self.shareButton.isEnabled = true
self.activityIndicatorView.isHidden = true
self.activityIndicatorView.stopAnimating()
self.imageScrollView.display(image: image)
}
}
}
dataTask!.resume()
imageScrollView.display(image: image)
}
@IBAction func share(_ sender: Any) {
guard let image = image else { return }
let activityViewController = UIActivityViewController(activityItems: [url!, image], applicationActivities: nil)
let activityViewController = UIActivityViewController(activityItems: [image], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = shareButton
activityViewController.popoverPresentationController?.sourceRect = shareButton.bounds
present(activityViewController, animated: true)
}
@IBAction func done(_ sender: Any) {
dataTask?.cancel()
dismiss(animated: true)
}