Chi siamoContattiDisclaimer

Caricare un'Immagine da URL con swift

Se hai iniziato ad usare da poco Swift per iOS 8 e vuoi caricare un'immagine in una UIImage da URL, allora sei nel posto giusto. In questo articolo imparerai come caricare un'immagine da URL con swift in iOS.

In Swift crea un nuovo progetto a singola vista per iOS

Create new single view project in swift

Dal Main.storyboard puoi disattivare per semplicità l'opzione use size classes

Swift disable use Size Classes

Ora puoi aggiungere, dentro la vista nel Main.storyboard, l'elemento Image View. Una volta aggiunto, puoi cliccarci sopra e accedere alla sezione del size inspector. Qui, sotto la sezione vista, puoi impostare il frame ad una dimensione di 50 x 50. Nello screenshot sotto, ti ho evidenziato dove trovare il size inspector e la sezione dove modificare la larghezza e l'altezza della componente UIImage inserita.

UIImage set image size in Swift

Il prossimo passo è il codice da scrivere. La prima cosa da fare è di collegare l'elemento UIImage che hai precedentemente aggiunto ad una variabile. In questo modo potrai accedere alla componente UIImage direttamente tramite questa variabile. Con il Main.storyboard aperto apri l'assistant editor. E' il bottone collocato in alto a destra rappresentato dai due cerchi che ti ho evidenziato nella figura qui sotto. 

Swift Assistant Editor

L'assitant editor è uno strumento utilissimo che ti permette di collegare una componente dell'interfaccia ad una variabile o ad una azione. Una volta premuto, lo schermo si divide in due parti. La parte sopra è il tuo Main.storyboard, mentre nela parte sotto apparirà la view controller. La View Controller è la classe che viene chiamata subito all'inizio appena l'applicazione si apre. Premi CTRL, quindi premi sulla componente UIImage nel Main.storyboard con il mouse. Trascina quindi il mouse nella parte sotto nello schermo, proprio sopra la funzione viewDidLoad. Una volta rilasciato il mouse, scrivi il nome della variabile, quindi premi Connect. 

Swift Connect component

Ora puoi uscire dall'assistant editor premendo il bottone sulla sinistra dell'assistant editor.

Swift code button

Ora puoi aprire il file ViewController.swift e scrivere la funzione load_image che ti pemetterà di scaricare in modo asincrono l'immagine da te specificata. La variabile image_element è il nome della variabile che hai precedentemente scelto per collegare l'elemento. Questa funzione chiama il metodo di iOS sendAsynchronousRequest che effettua un processo in background asincrono senza quindi appesantire il thread principale.

func load_image(urlString:String)
{

     var imgURL: NSURL = NSURL(string: urlString)!
     let request: NSURLRequest = NSURLRequest(URL: imgURL)
     NSURLConnection.sendAsynchronousRequest(
                   request, queue: NSOperationQueue.mainQueue(),
                   completionHandler: {(response: NSURLResponse!,data: NSData!,error: NSError!) -> Void in
         if error == nil {
               self.image_element.image = UIImage(data: data)
         }
    })

}

Ora nella funzione viewDidLoad puoi caricare l'immagine scrivendo:

load_image("https://www.kaleidosblog.com/tutorial/kaleidosblog.png")

 

Puoi scaricare il codice di questo esempio da qui.

Lascia un commento












Chi siamoContattiPrivacyDisclaimer