2017-01-06 7 views
1

Ich muss die Farbe eines Gif programmatisch ändern. Das ursprüngliche gif ist weiß auf klarem Hintergrund, und ich möchte es Farbe durch Code ändern lassen.Ändern der Farbe eines Gif in Swift

Ich habe versucht, die Antwort in this thread, aber das bewirkt, dass das gif auf dem ersten Frame einfrieren. Hier ist ein Teil des Codes, mit dem ich arbeite.

Ich verwende derzeit verschiedene GIF-Dateien für jede Farbe, die ich als Workaround brauche, aber das klingt furchtbar ineffizient. Irgendwelche Ideen?

Vielen Dank im Voraus!

Antwort

0

Sie können eine UIView erstellen und Hintergrundfarbe festlegen. Dann können Sie den Alpha-Wert der Ansicht auf 0,5 setzen und die Ansicht über die Bildansicht platzieren.

Wie so:

let overlayView = UIView() 
overlayView.frame = myImageView.frame 
overlayView.backgroundColor = .red 
overlayView.alpha = 0.5 
view.addSubview(overlayView) 

Auf diese Weise Ihr nicht das vorhandene Bild Ansicht vermasselt, das funktioniert.

Hoffe, das hilft.

+0

Wäre das nicht ein rotes, durchscheinendes Rechteck über dem GIF? Was ich versuche, ist, das Weiß im Original auf Rot zu ändern und dabei den klaren Hintergrund beizubehalten. –

+0

Oh ja, genau das würde es tun. Das tut mir leid. Der Grund dafür, dass Ihr gebuchter Code _freezes_ ist, ist, dass Sie das Bild der Bildansicht auf ein einziges 'UIImage' setzen. Ihr Code setzt das Bild der Bildansicht zunächst auf eine animierte Sequenz, die ich dann unmittelbar nach dem Festlegen eines einzelnen Bildes für die Bildansicht anwende. Um dies zu beheben, müssen Sie den Tönungscode in Ihrer Erweiterung auf jedes Bild in Ihrem GIF anwenden. – naturaln0va

Verwandte Themen