Développement

Insérer une image depuis une URL avec Swift 2

Par Guillaume , le 31 octobre 2015 , mis à jour le 2 décembre 2015 — 2 minutes de lecture

Bonjour à tous,

Depuis 1 mois maintentant je me forme sur swift qui, au passage est un language extraordinaire !
C’est un peu complexe certes, ça change beaucoup du web et notamment de PHP, mais la syntaxe se rapproche beaucoup plus de javascript.

Bref, je suis en train de concevoir un appli qui permet d’insérer une image depuis le web.
J’ai pas mal fouiller et au final j’ai fait un petit function qui permet de faire ça.

Voici un petit script qui pourra je l’espère vous aider 🙂
[pastacode lang= »js » message= » » highlight= » » provider= »manual »]
func load_image(urlString:String,element: UIImageView)
{
let imgURL: NSURL = NSURL(string: urlString)!
let request: NSURLRequest = NSURLRequest(URL: imgURL)

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in

if (error == nil && data != nil)
{
func display_image()
{
element.image = UIImage(data: data!)
}

dispatch_async(dispatch_get_main_queue(), display_image)
}

}

task.resume()
}

[/pastacode]

Et voici un exemple de ma class ViewController

[pastacode lang= »js » message= » » highlight= » » provider= »manual »]
//
// ViewController.swift

import UIKit

class ViewController: UIViewController {

@IBOutlet var image_element: UIImageView!

enum ErrorHandling:ErrorType
{
case NetworkError
}

override func viewDidLoad() {
super.viewDidLoad()

load_image(« https://base2code.com/wp-content/uploads/2014/03/logo-batier.png »,element: self.image_element)
}

func load_image(urlString:String,element: UIImageView)
{
let imgURL: NSURL = NSURL(string: urlString)!
let request: NSURLRequest = NSURLRequest(URL: imgURL)

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in

if (error == nil && data != nil)
{
func display_image()
{
element.image = UIImage(data: data!)
}

dispatch_async(dispatch_get_main_queue(), display_image)
}

}

task.resume()
}

}

[/pastacode]

Rendu sur le simulator:

Capture d’écran 2015-10-31 à 11.14.30
 

Enjoy 😉

Guillaume

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.