2017-05-17 24 views
0

レイヤーとグラデーションを含むビューにシャドーを追加しようとしています。形状レイヤー付きのUIViewにシャドウを追加

let shape = CAShapeLayer() 
shape.path = path.cgPath 

3)勾配経路

let path = UIBezierPath() 
path.move(to: CGPoint(x: myView.frame.minX, y: myView.frame.minY)) 
path.addLine(to: CGPoint(x: myView.frame.minX, y: myView.frame.maxY)) 
path.addLine(to: CGPoint(x: myView.frame.maxX, y: 171)) 
path.addLine(to: CGPoint(x: myView.frame.maxX, y: myView.frame.minY)) 
path.close() 

2))

1及び

let gradient = CAGradientLayer() 
gradient.frame = myView.bounds 
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor] 
gradient.startPoint = CGPoint(x: 0, y: 0) 
gradient.endPoint = CGPoint(x: 1, y: 1) 

let shadow = CALayer() 
shadow.shadowPath = path.cgPath 
shadow.shadowColor = UIColor.black.cgColor 
shadow.shadowOffset = CGSize.zero 
shadow.shadowOpacity = 0.5 

4シャドウ)入れ:私は実現することが可能であったものを以下すべてのレイヤーが私のビューのサブレイヤとして表示されます

self.myView.layer.addSublayer(shape) 
self.myView.layer.addSublayer(gradient) 
self.myView.layer.addSublayer(shadow) 
self.myView.layer.mask = shape 

ここにシミュレータが表示するもの:何ですか!?!影は下にではなく、ビューに配置されます。 enter image description here

私はそれを修正するために何ができますか?私の最終的な目的は、陰影をビューの下に(赤い線として)置くことです。

enter image description here

答えて

0

あなたにも影の半径を割り当てる必要があります。

shadow.shadowRadius = 5 
+0

私はシャドウ半径を割り当てるために忘れてしまったが、影が、まだ私はすでにmaskToBoundを呼び出すようにしようとしましたが、それはうまくいきませんでした shadow.maskToBounds = falseを –

+0

試みを実行しても、固定されていません –

+0

とそう –

関連する問題