Swift 3: UIImage lorsque la valeur de modèle de l'image et changé la couleur de teinte ne pas afficher l'image
Dans Swift 3, lorsque j'essaie de modifier par programmation la couleur d'une image téléchargée à partir d'actifs comme cela:
let imageView = UIImageView()
let image = UIImage(named: "imageFromAssets")?.withRenderingMode(.alwaysTemplate)
imageView.contentMode = .scaleAspectFit
imageView.tintColor = GREEN_UICOLOR //Change to custom green color
imageView.image = image
L'image apparaît comme un bloc carré ci-dessous:
Cependant, le plus drôle, c'est que cela ne se produit pas toujours. Avec quelques autres images dans les biens, de travaux et de modifications de la teinte de vert:
Pourquoi est-il un comportement incohérent ici? Et en général, comment puis-je ajouter un modèle de l'image à des actifs, et être capable de programmation pour changer sa couleur? Je me rends compte quand je ne change pas l'image d'un modèle de l'image, il fonctionne, mais je ne peux pas le faire parce que je veux changer l'image de la teinte.
- Vérifiez l'image, il devrait être composé par alpha et une couleur
Vous devez vous connecter pour publier un commentaire.
Pour modèle les images de l'arrière-plan doit être transparente - pas de blanc.
Image d'un modèle de travail en utilisant la propriété d'opacité d'une image.
Si vous avez une image avec un fond transparent, puis l'arrière-plan transparent reste transparente et TOUT le reste de l'image est modifié pour la petite couleur.
Si votre image n'a pas un arrière-plan transparent. Dire qu'il a un arrière-plan blanc. Ensuite, l'ensemble de l'image sera changé à la teinte de la couleur (comme vous voyez dans votre exemple).
Pour corriger cela, vous devez donner l'image d'arrière-plan transparent.
Il est également intéressant de noter que vous n'avez pas besoin de ce code. Si vous utilisez une image uniquement en mode modèle, puis il suffit de sélectionner le mode de rendu dans le catalogue.