我的集合视图单元格有一个渐变背景,每个渐变根据单元格是什么标签而不同(例如圣诞节是紫色渐变,生日是绿色渐变)但是当滚动集合视图时,渐变会不断改变单元格. 有没有办法解决这个问题?
这是我用来将渐变设置为背景视图的代码。它在cellForItemAt
cell.mainView.setGradientBackground(colours: self.getColourFromTag(tag: self.lists[indexPath.item].tag))
Run Code Online (Sandbox Code Playgroud)
.setGradientBackground是 UIView 的扩展,它只是为背景设置渐变。此处显示:
func setGradientBackground(colours: [CGColor]) {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = colours
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 1.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.0)
layer.insertSublayer(gradientLayer, at: 0)
}
Run Code Online (Sandbox Code Playgroud)
我使用下面的方法来获取渐变中的颜色
func getColourFromTag(tag: String) -> [CGColor] {
if tag == "Christmas" {
return [Colours.gradients.festive.start.cgColor, Colours.gradients.festive.end.cgColor]
}else if tag == "Birthday" {
return [Colours.gradients.lime.start.cgColor, Colours.gradients.lime.end.cgColor]
}else if tag == "Valentines Day" {
return [Colours.gradients.strawberry.start.cgColor, Colours.gradients.strawberry.end.cgColor]
}else …Run Code Online (Sandbox Code Playgroud)