cal*_*ley 16 gradient shadow uiview ios swift
我在我的iOS项目中创建了一个自定义UIView,它有一个投影.我的目标是将相同的渐变应用于阴影,就像在视图的背景上一样.
下面是我当前纯色阴影的外观示例.
override func layoutSubviews() {
let gradientLayer = layer as! CAGradientLayer
gradientLayer.colors = [topColor.cgColor, bottomColor.cgColor]
gradientLayer.startPoint = CGPoint(x: startPointX, y: startPointY)
gradientLayer.endPoint = CGPoint(x: endPointX, y: endPointY)
layer.cornerRadius = cornerRadius
layer.shadowColor = shadowColor.cgColor
layer.shadowOffset = CGSize(width: shadowX, height: shadowY)
layer.shadowRadius = shadowBlur
layer.shadowOpacity = 1
let inset: CGFloat = bounds.width * 0.05
layer.shadowPath = UIBezierPath(roundedRect: bounds.insetBy(dx: inset, dy: 0.0), cornerRadius: cornerRadius).cgPath
}
Run Code Online (Sandbox Code Playgroud)
我一直在玩创建第二个渐变层并将其遮盖到阴影中,但没有运气.请指出我正确的方向!
我认为你不能用标准 CALayer 阴影做更多的事情。看一下CALayer 的过滤器属性。
https://developer.apple.com/documentation/quartzcore/calayer/1410901-filters
例如,创建第二个CAGradientLayer并应用GausianBlur滤镜。
禁用标准图层阴影并将模糊图层添加为子图层。