2017-07-22 5 views
1

ich einen Knopf wie dies in Swift neu versuchen: Glowing Button EffectSwift - UI-Knopf Schatten Gradient

ich die Lage gewesen, die Gradienten innerhalb des Knopfes genau aus Sketche mit der Hilfe von hier zu erstellen: Answered Question

Jetzt versuche ich den Glow-Effekt hinter dem Knopf neu zu erstellen. Ich dachte daran, eine Subview dahinter zu erstellen und einen Gaussian Blur Filter zu verwenden, um es zu zeichnen. Jetzt bin ich in der Umsetzung fest und habe keine gute Lösung gefunden. Der normale CALayer-Schatten funktioniert nicht mit Farbverläufen und ich bin verloren. Jede Hilfe ist willkommen

Antwort

1

Sie es tun können, wie dies

Init Ihre Gradientenschicht

let gradientLayer = CAGradientLayer.init() 

gradientLayer.colors = [UIColor.red.cgColor, 
         UIColor.yellow.cgColor, 
         UIColor.green.cgColor, 
         UIColor.blue.cgColor] 

gradientLayer.transform = CATransform3DMakeRotation(CGFloat.pi/2, 0, 0, 1) 

Set bevorzugte Größe zum Beispiel 40 von Schaltfläche Rahmen

gradientLayer.frame = CGRect.init(
x: button.frame.minX - 40, 
y: button.frame.minY - 40, 
width: button.frame.width + 80, 
height: button.frame.height + 80) 
gradientLayer.masksToBounds = true 

Init Schattenebene

let shadowLayer = CALayer.init() 
shadowLayer.frame = gradientLayer.bounds 
shadowLayer.shadowColor = UIColor.black.cgColor 
shadowLayer.shadowOpacity = 0.08 
shadowLayer.shadowRadius = 20 
shadowLayer.shadowPath = CGPath.init(rect: shadowLayer.bounds, transform: nil) 

die Schattenschicht als Maske für die Gradientenschicht Set

gradientLayer.mask = shadowLayer 

Insert Gradientenschicht in superview der Taste unterhalb der Schicht der Schaltfläche

backgroungView.layer.insertSublayer(gradientLayer, below: button.layer) 
+0

Sie so vielen Dank! Das hat mir geholfen, es vollständig zu verstehen! – surfaspen

+0

Hat es für Sie funktioniert? –

+0

Ja, es funktioniert, aber das einzige Problem ist, dass beim Drücken der Taste die Schattenschicht mehr verdunkelt, und wenn der Benutzer die Schattenschicht gedrückt hält, wird schließlich die gleiche wie die Farbverlaufsschicht – surfaspen