J'utilise un UIImageView pour changer l'image de l'utilisateur. Actuellement, l'utilisateur a la possibilité de supprimer l'image déjà présente. Pour cela, j'ai un UIButton nommé « Supprimer la photo » et dans l'action le code est écrit:UIImageView affiche l'image pour la première fois puis revient soudainement à l'ancienne image dans Swift3
@IBAction func removeUserPhoto(_ sender: UIButton) {
self.profilePhoto.image = UIImage (named: "defaultProfilePic")
self.photoChanged = true
let imageData: Data = UIImagePNGRepresentation(profilePhoto.image!)!
tempProfileImage = imageData
self.removePhoto.isHidden = true
}
Lorsque je clique sur l'enlèvent l'image l'image est réglée sur la defaultProfilePic mais après quelques secondes, l'affichage de l'image affiche à nouveau l'ancienne image que l'utilisateur a supprimée.
Remarque: Aucun appel API n'a encore été appelé.
Les captures d'écran:
Après avoir cliqué sur le bouton Supprimer:
quelques secondes après change à nouveau de retour à l'ancienne image automatiquement.
Pourquoi est-ce qui se passe? Et j'ai trouvé viewDidLayoutSubviews appelle deux fois ou plus. J'utilise Xcode 8.3 Beta.
quelle est l'utilisation de cette vue de l'image 'tempProfileImage' –
Il est stocké dans les paramètres utilisateur. C'est pour montrer l'image changée dans d'autres écrans rapidement. –
Vous ne fournissez pas une description complète de votre problème. Vous devez décrire les différentes vues d'images, comment elles sont configurées dans le storyboard et afficher tout le code qui affiche/cache les différentes vues d'image. Lion a un bon point. Il semble que vous feriez mieux d'avoir une seule vue d'image qui affiche l'image actuelle. S'il s'agit d'un espace réservé, affichez-le, s'il s'agit d'une image personnalisée. –