iOS Gradient color isse в ячейке просмотра коллекции - PullRequest
0 голосов
/ 30 октября 2018

Я сталкиваюсь с этой проблемой при установке цвета градиента для просмотра в представлении коллекции

Когда он нанесен на первый раз, это нормально. но когда я выбираю какой-то вариант и перезагружаю коллекцию для того же самого, это происходит как второе изображение.

Викалександр / Хамелеон (https://github.com/viccalexander/Chameleon)

enter image description here

enter image description here

1 Ответ

0 голосов
/ 30 октября 2018

Попробуйте приведенный ниже код, может помочь вам

  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)

Справочник - Как сделать так, чтобы у клеток был градиентный фон?

...