Swift 正确删除带有渐变的图层
我有一个UICollectionViewCell,其UIView名为gradientView,用作其上标签的背景 此UIView需要有渐变-它在单元格顶部是浅色的,几乎是透明的,在单元格底部会稍微变暗(简单的线性渐变) 所以我创建了名为addGradient的func,它采用UIView并向其中添加带有渐变的层Swift 正确删除带有渐变的图层,swift,uiview,cagradientlayer,Swift,Uiview,Cagradientlayer,我有一个UICollectionViewCell,其UIView名为gradientView,用作其上标签的背景 此UIView需要有渐变-它在单元格顶部是浅色的,几乎是透明的,在单元格底部会稍微变暗(简单的线性渐变) 所以我创建了名为addGradient的func,它采用UIView并向其中添加带有渐变的层 func addGradient(view : UIView){ view.backgroundColor = .clear let color1 = somec
func addGradient(view : UIView){
view.backgroundColor = .clear
let color1 = somecolor1.cgColor
let color2 = somecolor2.cgColor
let gradient:CAGradientLayer = CAGradientLayer()
gradient.frame.size = view.frame.size
gradient.colors = [color1, color2]
view.layer.addSublayer(gradient)
}
在cellForItemAt内部,我调用addGradient(cell.gradientView),并显示渐变。但我有两个问题:
1) 每一个细胞都变得越来越暗——似乎层层叠加,我不想要它
2) 有时候这个梯度有点错位——我也认为这是因为我没有正确地删除这个层
因此,我应该如何以及在何处清除子层,也许我在cellForItemAt中添加此渐变的方法不正确?只是对数字1的猜测,而没有看到更多代码:将帧更改为边界
func addGradient(view : UIView){
view.backgroundColor = .clear
let color1 = somecolor1.cgColor
let color2 = somecolor2.cgColor
let gradient:CAGradientLayer = CAGradientLayer()
gradient.frame.size = view.bounds.size
gradient.colors = [color1, color2]
view.layer.addSublayer(gradient)
}