2016-10-31 3 views
0

Ich habe versucht, eine Bildansicht mit einem Farbverlaufslayer zu füllen, aber ich kann es scheinbar nicht funktionieren lassen, ich habe versucht, CAGradientLayer zu erstellen, 2 Farben darauf angewendet und dann als Maske auf es angewendet die Hauptbildschicht. DieseGradient over UIImageView

let gradient = CAGradientLayer() 
gradient.frame = (self.imageView?.bounds)! 
gradient.colors = [UIColor.blue.cgColor, UIColor.purple.cgColor] 
gradient.startPoint = CGPoint(x: 0.0, y: 0.5) 
gradient.endPoint = CGPoint(x: 0.5, y: 1.0) 
gradient.locations = [0, 1] 
self.imageView?.layer.mask = gradient 

ist das, was ich habe, und das ist, was ich als Folge wollen:

FirstSecond

UPDATE: Fand die Lösung here.

+0

Sie es nach hinten haben. Sie verwenden das Bild, um den Farbverlauf zu maskieren. Die Sache mit dem Alpha-Kanal ist immer die Maske, weil sie die Transparenz-Info liefert. –

Antwort

0

Sie können etwas tun:

var gradient = CAGradientLayer() 
gradient.frame = imageView.bounds 
gradient.colors = [UIColor.blue.cgColor, UIColor.purple.cgColor] 
imageView.layer.insertSublayer(gradient, at: 0) 
+0

Vielen Dank für Ihre Antwort, ich habe es schon einmal versucht, es zeichnet zwar einen Farbverlauf über das Bild, aber es zeichnet ein Farbquadrat über das Bild, es stimmt nicht mit der Form des Originalbildes überein –