集合视图单元格中的iOS渐变色isse

时间:2018-10-30 04:29:30

标签: ios swift uicollectionviewcell gradient chameleon

我在设置渐变颜色以在集合视图中查看时遇到了这个问题

第一次绘制时会很好。 但是当我选择某个选项并重新加载相同的集合时,就像第二张图片一样。

viccalexander /变色龙(https://github.com/viccalexander/Chameleon

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试以下代码,可能会对您有所帮助

  extension UIView{
        func addGradientBackground(firstColor: UIColor, secondColor: UIColor){
            clipsToBounds = true
            let gradientLayer = CAGradientLayer()
            gradientLayer.colors = [firstColor.cgColor, secondColor.cgColor]
            gradientLayer.frame = self.bounds
            gradientLayer.startPoint = CGPoint(x: 0, y: 0)
            gradientLayer.endPoint = CGPoint(x: 0, y: 1)
            print(gradientLayer.frame)
            self.layer.insertSublayer(gradientLayer, at: 0)
        }
    }

在您的单元格内即可:

override func awakeFromNib() {
    super.awakeFromNib()
    DispatchQueue.main.async {
        self.addGradientBackground(firstColor: .green, secondColor: .blue)
    }
}

仅在Xib文件中添加此行,否则在重新加载单元格时在单元格self.addGradientBackground(firstColor:.green,secondColor:.blue)中添加多个Gradient

参考-How to make cells have a gradient background?