2016-12-22 2 views
0

Ich habe versucht, in einem UICollectionViewCell nach einem Hahn den tintColor eines UIImageView Ändern von Modus der Symbole zu Template Image machen Einstellung und dann die Farbeinstellung vonUIImageView tintColor Farben ganze Bild

iconView.tintColor = .blue 

Problem Aufruf: Dies füllt das gesamte Bild mit der gewählten Farbe, anstatt nur die nicht transparenten Teile zu ändern.

Diese Methode hat in der Vergangenheit für mich funktioniert, und ich bin nicht in der Lage, das Problem zu lösen. Ich nahm an, dass die Symbole einen weißen Hintergrund anstelle eines transparenten haben könnten, aber das ist nicht der Fall. Vielleicht hat es etwas mit der UIImageView in einem UICollectionViewCell zu tun?

Hilfe würde sehr geschätzt werden!

+0

Verwenden Sie es 'iconView.tintColor = UIColor.blue' –

+0

einmal überprüfen Apple Documetration für diese Eigenschaft von Bildansicht, Wenn FarbtonColor ist nicht Null, werden alle Vorlage Bilder in der Bildansicht mit dieser Farbe eingefärbt werden. –

+0

können Sie einfach iconView.backgroundColor nach dem Tippen ändern? es wird die Farbe nur von transparenten Teilen ändern –

Antwort

1

versuchen diese

imageViewHome.image = UIImage.init(named: "yourImageName")?.withRenderingMode(.alwaysTemplate) 

imageView.tintColor = .blue 
+0

Wie ist das anders als meine Lösung? – CAAnimationDelegate

+0

ist diese Arbeit für Sie oder nicht? –

+0

Nein, da dies die exakt gleiche Methode ist, die ich verwendet habe. Der einzige Unterschied besteht darin, dass Sie es im Code festlegen, während ich es im Asset-Katalog eingestellt habe. – CAAnimationDelegate

-1

Der folgende Code nur den nicht transparenten Bereich Farbe wird.

yourImage.image = yourImage.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) 
yourImage.tintColor = UIColor.redColor() 

Glückliche Kodierung.