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
ここにシミュレータが表示するもの:何ですか!?!影は下にではなく、ビューに配置されます。
私はそれを修正するために何ができますか?私の最終的な目的は、陰影をビューの下に(赤い線として)置くことです。
私はシャドウ半径を割り当てるために忘れてしまったが、影が、まだ私はすでにmaskToBoundを呼び出すようにしようとしましたが、それはうまくいきませんでした shadow.maskToBounds = falseを –
試みを実行しても、固定されていません –
とそう –