J'ai une image appelée arrowWhite
. Je veux colorer cette image en noir.
func attachDropDownArrow() -> NSMutableAttributedString {
let image:UIImage = UIImage(named: "arrowWhite.png")!
let attachment = NSTextAttachment()
attachment.image = image
attachment.bounds = CGRectMake(2.25, 2, attachment.image!.size.width - 2.25, attachment.image!.size.height - 2.25)
let attachmentString = NSAttributedString(attachment: attachment)
let myString = NSMutableAttributedString(string: NSString(format: "%@", self.privacyOptions[selectedPickerRow]) as String)
myString.appendAttributedString(attachmentString)
return myString
}
Je veux faire entrer cette image blackColour
.
tintColor
ne fonctionne pas...
Réponses:
Swift 4 et 5
Appelez comme ceci:
Alternatif pour Swift 3, 4 ou 5
Pour Swift 2.3
Appelez comme ceci:
la source
Il existe une méthode intégrée pour obtenir un
UIImage
rendu automatique en mode modèle . Cela utilise tintColor d'une vue pour colorer l'image:la source
Vous devez d'abord changer la propriété de rendu de l'image en "Template Image" dans le dossier .xcassets. Vous pouvez ensuite simplement modifier la propriété de couleur de teinte de l'instance de votre UIImageView comme suit:
la source
tintColor
vous été suppriméUIImage
à un moment donné? J'étais enthousiasmé par cette réponse, mais elle ne semble pas exister dans iOS 10J'ai fini avec cela parce que d'autres réponses perdent la résolution ou fonctionnent avec UIImageView, pas UIImage, ou contiennent des actions inutiles:
Swift 3
la source
UIImage
. Vraiment belle réponse, merci!Cette fonction utilise des graphiques de base pour y parvenir.
la source
maskWithColor
L'extension fonctionne mais cela ignorescale
donc l'image n'a pas l'air nette sur les appareils à haute résolution.Pour swift 4.2, changez la couleur UIImage comme vous le souhaitez (couleur unie)
Comment utiliser
la source
Créez une extension sur UIImage:
Ensuite, vous pouvez l'utiliser comme ça:
la source
scale
,orientation
et d'autres paramètres deUIImage
.J'ai trouvé la solution HR la plus utile mais je l'ai légèrement adaptée pour Swift 3
Cela prend en compte l'échelle et ne produit pas non plus une image de résolution inférieure comme certaines autres solutions. Utilisation:
la source
L'encapsuleur d'extension Swift 3 de @Nikolai Ruhe répond.
Il peut également être utilisé pour
UIButton
, par exemple:la source
Swift 4
la source
Ajoutez cette extension dans votre code et changez la couleur de l'image dans le storyboard lui-même.
Swift 4 et 5:
Aperçu du storyboard:
la source
Pour iOS13 +, il existe withTintColor (__ :) et withTintColor (_: renderingMode :) .
Exemple d'utilisation:
ou
la source
Swift 3
21 juin 2017
J'utilise CALayer pour masquer l'image donnée avec Alpha Channel
la source
Version Swift 3 avec échelle et orientation de @kuzdu answer
la source
Swift 4.
Utilisez cette extension pour créer un image de couleur unie
la source
Après iOS 13, vous pouvez l'utiliser quelque chose comme ça
la source
Ajouter une fonction d'extension:
Utilisez comme:
la source
Voici la version Swift 3 de la solution HR.
la source
Comme j'ai trouvé la réponse de Darko très utile pour coloriser les épingles personnalisées pour les annotations mapView, mais que j'ai dû faire quelques conversions pour Swift 3, j'ai pensé partager le code mis à jour avec ma recommandation pour sa réponse:
la source
J'ai modifié l'extension trouvée ici: Github Gist , pour
Swift 3
laquelle j'ai testé dans le cadre d'une extension pour UIImage.la source