Primero Si la imagen la vamos a cargar desde una url que no sea segura debemos modificar nuestro Info.plist para que nos deje cargar la imagen entonces en nuestro archivo Info.plist agregamos esto:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
Ahora crea la siguiente funcion en algun controller o bien en una clase de utilidad que tengas, o bien se puede hacer como una extension de la Clase UIImageView, como se te antoje igual pondre los tres ejemplos que son casi iguales:
func downloadImage(_ uri : String, inView: UIImageView){
let url = URL(string: uri)
let task = URLSession.shared.dataTask(with: url!) {responseData,response,error in
if error == nil{
if let data = responseData {
DispatchQueue.main.async {
inView.image = UIImage(data: data)
}
}else {
print("no data")
}
}else{
print(error)
}
}
task.resume()
}
Con esta funcion lo metemos dentro de un Controller y bueno nuestro controller quedaria asi:
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.downloadImage("https://dummyimage.com/300x300/0F0F0F/00FF00.png&text=Loaded+Image!", inView: imageView)
}
func downloadImage(_ uri : String, inView: UIImageView){
let url = URL(string: uri)
let task = URLSession.shared.dataTask(with: url!) {responseData,response,error in
if error == nil{
if let data = responseData {
DispatchQueue.main.async {
inView.image = UIImage(data: data)
}
}else {
print("no data")
}
}else{
print(error)
}
}
task.resume()
}
}
Nos quedaria asi entonces en el emulador:

Aqui les dejo el link con el codigo:
			
 
 
 
One comment