Boucle d'images si NULL
Bonjour tout le monde,
J'ai découvert un problème sur mon application, que j'essaie de résoudre.
J'ai des images que se répète dans un UITableViewCell, ça me fait des choses bazar.
J'attribue un chiffre, et une image qui correspond à ce chiffre.
Mais cela ne se rafraichit pas quand cela est NULL dans mon UITableViewCell.
if !(person["logo"] is NSNull){
Alamofire.request(person["logo"] as! String)
.responseImage { response in
if let image = response.result.value {
self.images.image = image
}
}
}
Mon JSON est correct, j'ai regardé de partout, je n'ai rien trouver d'anormal, c'est bien NULL dans ma requête.
Merci a vous,
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je dirais que c'est normal. Les cellules sont recyclées en permanence par la table. C'est-à -dire qu'une "nouvelle" cellule est en fait une ancienne avec son contenu précédent. S'il y avait une image dans son champ .image elle est encore là .
Pour éviter ça, tu dois remettre la cellule à l'état vide avant de l'utiliser. Par exemple :
a
a
EDIT : Mon exemple n'est peut-être pas assez précis. La cellule doit être remise à un état vierge juste après sa "création" (qui n'est pas une vraie création mais un recyclage).
a
a
Tout d'abord, améliores ton code pour être sûr que tu aies un bon "logo"
Et, pour ça, il faut override prepareForReuse() sur la cellule.
Oui, je sais. J'allais lui en parler ensuite. Tu m'as évité un post.
Quelle est la différence entre l'override de prepareForReuse() et le fait de remettre à nil dans une boucle ?
J'me doute que c'est plus propre dans prepareForReuse() mais est-ce la seule différence ?
Oui, c'est plus propre, ça n'arrive qu'une seule fois après la cellule a été recyclée et ça évite de confondre le code de préparation de la cellule
a
Le code d'easyd n'utilise qu'une cellule standard, avec une seule image. Mais imagine une cellule personnalisée, avec plusieurs labels et images. C'est pratique d'avoir une seule fonction pour traiter toutes les opérations de remise à zéro. Cela facilite la maintenance du code si la structure de la cellule évolue.
a
Merci pour vos aide,
ça fonctionne très bien.
Merci a vous,