需要对自定义形状进行模糊处理,并带有阴影。
我制作一个自定义UIView
类,在drawRect
中绘制所需的形状,然后制作一个阴影层CAShapeLayer
,并插入索引0。
问题是我将该层的fillColor
设置为白色(白色),
UIColor.yellow.setFill()
bezierPath.fill()
在关闭我的路径之后。
因此,当我将UIView
替换为UIVisualEffectView
并尝试在其contentView
中添加形状图层时,只要图层不透明,我就会失去模糊效果。
所以我要么获得带有阴影的自定义形状视图,要么获得矩形模糊视图。 如何同时获得它们?
class CustomShapedBlurView: UIVisualEffectView {
override func draw(_ rect: CGRect) {
let path = UIBezierPath()
// cgpoint-movements
path.close()
UIColor.yellow.setFill()
path.fill()
let shapeMask = CAShapeLayer()
shapeMask.frame = rect
shapeMask.path = path.cgPath
shapeMask.shadowOpacity = 2
shapeMask.shadowRadius = 10
shapeMask.shadowOffset = CGSize(width: 0, height: -8)
shapeMask.shadowColor = UIColor.black.cgColor
shapeMask.fillColor = UIColor.white.cgColor
self.contentView.layer.insertSublayer(shapeMask, at: 0)
}
}
最近我将效果设置为UIBlurEffect(style: .light)