Je stocke un lien d'image (récupéré en utilisant JS à partir d'un UIWebView) dans une variable. J'ai aussi un UIImageView. Une fois que j'ai ce lien, je veux définir ce lien comme valeur de UIImageView. Quelqu'un sait-il comment transformer ce lien en atout?

Toute aide serait extrêmement appréciée !! Merci beaucoup d'avance.

À la vôtre, Theo

0
Theo Strauss 21 avril 2017 à 15:44

3 réponses

Meilleure réponse

Vous devez d'abord télécharger l'image.

Version simple (blocage du thread principal)

if let url = URL(string: "") {
    do {
        let data: Data = try Data(contentsOf: url)
        coverImageView.image = UIImage(data: data)
    } catch {
        // error handling
    }
}

URLSession version (non bloquante)

if let url = URL(string: "") {
    let task = URLSession.shared.dataTask(with: url, completionHandler: { data, response, error in
        if let data = data {
            imageView.image = UIImage(data: data)
        }
    })
    task.resume()
}
1
d4Rk 21 avril 2017 à 13:10

Hmm, il y a pas mal d'options, mais d'après mon expérience, il est préférable d'utiliser progressif JPEG, lien contenu bel article de Facebook sur les avantages.

Vous pouvez utiliser le framework Concorde pour y parvenir. Il est assez simple à utiliser.

0
Oleg Gordiichuk 21 avril 2017 à 12:48

Utilisez Alamofire, voici un extrait de code de mon projet

 ImageView.af_setImage(
                withURL: URL(string: "your image url"),
                placeholderImage: UIImage(named: "any default placeholder"),
                filter: AspectScaledToFillSizeWithRoundedCornersFilter(size: ImageView.frame.size, radius: 5.0),
                imageTransition: .crossDissolve(0.2)
            )
1
harshal jadhav 21 avril 2017 à 13:09