Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ViewController.swift
- // MyToast
- //
- // Created by hackeru on 13/11/2019.
- // Copyright © 2019 hackeru. All rights reserved.
- //
- import UIKit
- class ViewController: UIViewController {
- let charuf="https://images.unsplash.com/photo-1484557985045-edf25e08da73?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=967&q=80"
- let neoShark="https://hips.hearstapps.com/hmg-prod.s3.amazonaws.com/images/what-is-baby-shark-1548869443.jpg?crop=0.526xw:1.00xh;0.342xw,0&resize=768:*"
- @IBOutlet weak var neoButton: UIImageView!
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view, typically from a nib.
- }
- @IBAction func btnHelp(_ sender: Any) {
- //Toast.show(message: "Please help me", controller: self)
- neoButton.loadImageUsingCache(withUrl: neoShark)
- }
- }
- let imageCache = NSCache<NSString,UIImage>()
- extension UIImageView{
- func loadImageUsingCache(withUrl urlString:String){
- let url = URL(string: urlString)
- if url == nil {return}
- self.image = nil
- //check for cached images
- if let cachedImage = imageCache.object(forKey: urlString as NSString){
- self.image = cachedImage
- return
- }
- let activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView.init(style: .gray)
- self.addSubview(activityIndicator)
- activityIndicator.startAnimating()
- activityIndicator.center = self.center
- //if not , download image from url
- URLSession.shared.dataTask(with: url!, completionHandler: {
- (data, response, error) in
- if error != nil {
- print (error!)
- return
- }
- DispatchQueue.main.async {
- if let image = UIImage(data: data!){
- imageCache.setObject(image, forKey: urlString as NSString)
- self.image=image
- activityIndicator.removeFromSuperview()
- }
- }
- }).resume()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement