实现抖音背景半透明的效果,在网上找案例非常的少,有的性能不好,因此想整理下,下面直接上代码
直接在父视图上添加一下代码。
override func layoutSubviews() {
super.layoutSubviews()
letgradLayer =CAGradientLayer()
//colors存放渐变的颜色的数组
letouterColor =UIColor(white:1, alpha:0).cgColor
letinnerColor =UIColor(white:1, alpha:0.5).cgColor
letinnerColor1 =UIColor(white:1, alpha:1).cgColor
gradLayer.colors= [
outerColor,
innerColor,
innerColor1
].compactMap{ $0 }
/// 起点和终点表示的坐标系位置,(0,0)表示左上角,(1,1)表示右下角
gradLayer.startPoint=CGPoint(x:0, y:0)
gradLayer.endPoint=CGPoint(x:0, y:0.5)
gradLayer.frame=CGRect(x:0, y:0, width:self.width, height:self.height)
self.layer.mask= gradLayer
}