Swift 3: Display Image from URL

后端 未结 9 1853
Happy的楠姐
Happy的楠姐 2020-12-04 22:27

In Swift 3, I am trying to capture an image from the internet, and have these lines of code:

var catPictureURL = NSURL(fileURLWithPath: \"http://i.imgur.com/         


        
9条回答
  •  攒了一身酷
    2020-12-04 22:49

    Use extension for UIImageView to Load URL Images.

    let imageCache = NSCache()
    
    extension UIImageView {
    
        func imageURLLoad(url: URL) {
    
            DispatchQueue.global().async { [weak self] in
                func setImage(image:UIImage?) {
                    DispatchQueue.main.async {
                        self?.image = image
                    }
                }
                let urlToString = url.absoluteString as NSString
                if let cachedImage = imageCache.object(forKey: urlToString) {
                    setImage(image: cachedImage)
                } else if let data = try? Data(contentsOf: url), let image = UIImage(data: data) {
                    DispatchQueue.main.async {
                        imageCache.setObject(image, forKey: urlToString)
                        setImage(image: image)
                    }
                }else {
                    setImage(image: nil)
                }
            }
        }
    }
    

提交回复
热议问题