我有一个只有底部圆角的CAShapeLayer
。我想要的是在底部添加一个阴影,但它不起作用,即使代码看起来显然是正确的。它所做的一切都是围绕底角,但我没有看到阴影。
let shapeLayer = CAShapeLayer()
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.bottomLeft, .bottomRight], cornerRadii: CGSize(width: 20, height: 20)).cgPath
shapeLayer.path = path
shapeLayer.shadowColor = UIColor(r: 233, g: 233, b: 233).cgColor
shapeLayer.shadowOffset = CGSize(width: 0.0, height: 2.8)
shapeLayer.shadowOpacity = 1.0
shapeLayer.shadowRadius = 0.0
shapeLayer.shouldRasterize = true
shapeLayer.rasterizationScale = UIScreen.main.scale
layer.rasterizationScale = UIScreen.main.scale
layer.mask = shapeLayer
shapeLayer
将 View 的角变圆,因为它被设置为层的 mask 。您可能希望将其添加为子层。
旧:
layer.mask = shapeLayer
新:
layer.addSublayer(shapeLayer)
如果有帮助,我在这里写了另一个关于向圆角 View 添加阴影的答案:https://stackoverflow.com/a/41475658/6658553
关于ios - 用 CAShapeLayer 添加阴影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43791102/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) | Powered by Discuz! X3.4 |