Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从URL下载图像';然后将这些图像附加到UIImage数组?_Ios_Arrays_Swift_Uiimage_Sdwebimage - Fatal编程技术网

Ios 如何从URL下载图像';然后将这些图像附加到UIImage数组?

Ios 如何从URL下载图像';然后将这些图像附加到UIImage数组?,ios,arrays,swift,uiimage,sdwebimage,Ios,Arrays,Swift,Uiimage,Sdwebimage,我正在使用UIImageView.image来更改屏幕上的可见图像 iv.image = images[index] 数组“images”当前已填充本地图像文件。但是,我希望从服务器下载图像,然后将它们附加到阵列中 private var images = [img1, img2, img3] 有人建议我使用SDWebImage(特别是SDWebImageManager或SDWebImageDownloader)来完成这项工作,但是,在浏览下载和缓存教程时,所有教程都下载到UIImageVi

我正在使用UIImageView.image来更改屏幕上的可见图像

iv.image = images[index]
数组“images”当前已填充本地图像文件。但是,我希望从服务器下载图像,然后将它们附加到阵列中

private var images = [img1, img2, img3]

有人建议我使用SDWebImage(特别是SDWebImageManager或SDWebImageDownloader)来完成这项工作,但是,在浏览下载和缓存教程时,所有教程都下载到UIImageView。我无法将UIImageView传入.image扩展名。我找不到任何教程或示例来帮助我实现这一点。我对斯威夫特相当陌生,因此我没有大量的经验或理解

您也可以在没有任何库的情况下异步加载映像

下面将为imageView创建一个扩展,它将异步关闭服务器上的映像,只需将相应的url作为参数传递,它将返回一个映像

extension UIImageView {
  public func imageFromServerURL(urlString: String) {
    URLSession.shared.dataTask(with: NSURL(string: urlString)! as URL, completionHandler: { (data, response, error) -> Void in
        if error != nil {
            print(error!)
            return
        }
        DispatchQueue.main.async(execute: { () -> Void in
            if let imageData = data {
                let image = UIImage(data: imageData)
                self.image = image
            }
        })            
    }).resume()
  }
}

// And you can call like this where ever required

cell.cellImageView.imageFromServerURL(urlString: banner.imageURL)

使用这个我的代码中已经有了这样的扩展,但是,当它只适用于UIImageView时,当我需要将它应用于UIImage数组时。除非我对正在发生的事情的理解是错误的,否则我不确定如何使这项工作正常,我需要返回多个图像并将它们放入一个数组中。对我来说,拥有imageView的扩展是没有用的,因为我改变图像的方式是通过改变数组的索引并使用
imageView.image=UIImageArray[index]