我有UICollectionViewCell和UIView,名为 gradientView ,用作标签的背景。
这个UIView需要具有渐变 - 它在单元格的顶部是轻的并且几乎是透明的,并且在单元格的底部变得稍暗(简单的线性渐变)。
所以我创建了一个名为addGradient的func,它接受UIView并为其添加渐变层。
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中添加这个渐变的方法是不对的?
答案 0 :(得分:0)
只是猜测数字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)
}