集合视图单元格中的 iOS 渐变颜色问题

Shr*_*kar 1 gradient ios chameleon uicollectionviewcell swift

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

当它第一次绘制时很好。但是当我选择一些选项并重新加载集合时,它会像第二张图片一样发生。

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

在此处输入图片说明

在此处输入图片说明

Nik*_*iki 5

试试下面的代码,可能对你有帮助

  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)
        }
    }
Run Code Online (Sandbox Code Playgroud)

在你的细胞内简单地:

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

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

参考 -如何使单元格具有渐变背景?