【问题标题】:iOS Gradient color isse in collection view cell集合视图单元格中的iOS渐变颜色问题
【发布时间】:2018-10-30 04:29:30
【问题描述】:

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

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

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

【问题讨论】:

  • 请出示关于具体问题的相关代码。整个项目的链接还不错,但是在您的问题中放入了一段无法按您期望的方式工作的代码块。更具体地说明问题本身。
  • 还有上传图片到底需要什么结果?
  • 我猜你是在尚未设置单元格大小时应用渐变。设置后,将渐变层的边界更改为单元格之一。

标签: ios swift uicollectionviewcell gradient chameleon


【解决方案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)

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

【讨论】:

  • 这个代码也发生了同样的事情,兄弟,在选择新的之后,我重新加载集合,这件事发生了
  • @ShrikantWalekar 你能试试这个更新的代码吗?
  • 能否把代码贴出来,这样更容易理解问题!
  • DispatchQueue.main.async Worked 兄弟我错过了...谢谢
猜你喜欢
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 2022-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-09
相关资源
最近更新 更多