Je construis une application iOS en utilisant Rubymotion. Je crée une ligne personnalisée tableview et je veux ajouter une grande image à partir d'une API distante (obtenir l'URL de l'objet JSON).Créer une image depuis une URL distante et l'ajouter à une cellule
Comment est-ce que je peux faire ceci? Je ne trouve nulle part comment créer une image à partir d'une URL distante, puis l'ajouter à la cellule.
Reconnaissant pour toute aide!
Mise à jour
J'utilise ce code maintenant, mais la performance est très mauvaise lors du défilement de la table.
url = NSURL.URLWithString("http://www.gravatar.com/avatar/1d92e61d7066383b1e3c797ea635f86e?s=128&d=identicon&r=PG")
data = NSData.dataWithContentsOfURL(url)
remote = UIImage.imageWithData(data)
image = UIImageView.alloc.initWithFrame([[50, 50],[150, 50]])
image.contentMode = UIViewContentModeScaleAspectFit
image.image = remote
Mise à jour 2
J'ai fini avec ce code qui vont de bonnes performances. Maintenant, j'ai juste besoin de comprendre comment mettre en cache les images.
Dispatch::Queue.concurrent.async do
data = NSData.alloc.initWithContentsOfURL(NSURL.URLWithString(post.image_medium))
if data
image = UIImage.alloc.initWithData(data)
Dispatch::Queue.main.sync do
image_view = UIImageView.alloc.initWithFrame([[210, 10],[80, 80]])
image_view.image = image
view.addSubview(image_view)
end
end
end
Merci! Mais comment puis-je faire cela dans Ruby? –
Désolé, je l'ai lu rapidement et je n'ai pas remarqué que vous utilisez rubymotion. Je pensais que vous utilisiez ruby sur le serveur. Je ne connais pas la syntaxe de rubymotion, mais la première partie devrait être similaire au code que j'ai posté. J'ai regardé le doc de rubymotion et vous avez le NSURL, NSData UIImage et UITableViewCell. Les étapes sont les mêmes. – jcesarmobile
J'ai essayé et j'ai réussi à convertir votre code en Ruby (voir mise à jour) mais la performance est très mauvaise quand je défile. –