Ich habe ein Bild namens arrowWhite
. Ich möchte dieses Bild schwarz färben.
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
}
Ich möchte dieses Bild aufnehmen blackColour
.
tintColor
funktioniert nicht...
Antworten:
Swift 4 und 5
Rufen Sie so an:
Alternativ für Swift 3, 4 oder 5
Für Swift 2.3
Rufen Sie so an:
quelle
Es gibt eine integrierte Methode, um eine zu erhalten
UIImage
, die automatisch im Vorlagenmodus gerendert wird . Dies verwendet die Farbe tintColor einer Ansicht, um das Bild einzufärben:quelle
Zuerst müssen Sie die Rendering-Eigenschaft des Bildes im Ordner ".xcassets" in "Vorlagenbild" ändern. Sie können dann einfach die Farbton-Farbeigenschaft der Instanz Ihres UIImageView folgendermaßen ändern:
quelle
tintColor
erhalten von entferntUIImage
irgendwann? Ich war begeistert von dieser Antwort, aber sie scheint in iOS 10 nicht zu existierenIch bin dazu gekommen, weil andere Antworten entweder die Auflösung verlieren oder mit UIImageView arbeiten, nicht mit UIImage, oder unnötige Aktionen enthalten:
Swift 3
quelle
UIImage
s erhalten. Wirklich schöne Antwort, danke!Diese Funktion verwendet Kerngrafiken, um dies zu erreichen.
quelle
maskWithColor
Die Erweiterung funktioniert, wird jedoch ignoriert,scale
sodass das Bild auf Geräten mit höherer Auflösung nicht scharf aussieht.Damit Swift 4.2 die UIImage-Farbe nach Belieben ändert (Volltonfarbe)
Wie benutzt man
quelle
Erstellen Sie eine Erweiterung in UIImage:
Dann können Sie es so verwenden:
quelle
scale
,orientation
und andere ParameterUIImage
.Ich fand die Lösung von HR am hilfreichsten, passte sie jedoch leicht an Swift 3 an
Dies berücksichtigt die Skalierung und erzeugt auch kein Bild mit niedrigerer Auflösung wie bei einigen anderen Lösungen. Verwendung :
quelle
Swift 3 Extension Wrapper von @Nikolai Ruhe antworten.
Es kann auch verwendet werden für
UIButton
z.quelle
Swift 4
quelle
Fügen Sie diese Erweiterung in Ihren Code ein und ändern Sie die Bildfarbe im Storyboard.
Swift 4 & 5:
Storyboard-Vorschau:
quelle
Für iOS13 + gibt es die Methoden withTintColor (__ :) und withTintColor (_: renderingMode :) .
Anwendungsbeispiel:
oder
quelle
Swift 3 Version mit Skalierung und Orientierung von @kuzdu Antwort
quelle
Swift 4.
Verwenden Sie diese Erweiterung, um ein einfarbiges Bild zu erstellen
quelle
Nach iOS 13 können Sie es so etwas verwenden
quelle
Erweiterung hinzufügen Funktion:
Verwenden Sie wie:
quelle
Hier ist die schnelle 3-Version der HR-Lösung.
quelle
Swift 3
21. Juni 2017
Ich benutze CALayer, um das gegebene Bild mit Alpha Channel zu maskieren
quelle
Da ich Darkos Antwort beim Färben von benutzerdefinierten Pins für mapView-Anmerkungen sehr hilfreich fand, aber einige Konvertierungen für Swift 3 vornehmen musste, dachte ich, ich würde den aktualisierten Code zusammen mit meiner Empfehlung für seine Antwort teilen:
quelle
Ich habe die hier gefundene Erweiterung geändert: Github Gist , für
Swift 3
die ich im Rahmen einer Erweiterung für UIImage getestet habe.quelle