【发布时间】:2017-10-17 12:57:45
【问题描述】:
我正在尝试为具有图层和渐变的视图添加阴影。按照我能够意识到的:
1) 路径
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) 形状
let shape = CAShapeLayer()
shape.path = path.cgPath
3) 渐变和阴影
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
模拟器向我显示的内容:什么?!?!阴影放置在视图上,而不是下方!!!
我能做些什么来解决它?我的最终目的是将阴影放在视图下方(如红线)。
【问题讨论】:
标签: swift calayer layer shadow cashapelayer