Код: Выделить всё
func createBackgroundGradient() -> CAGradientLayer {
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [UIColor.red.cgColor, UIColor.white.cgColor, UIColor.red.cgColor]
gradientLayer.locations = [0.0, 0.5, 1.0]
gradientLayer.frame = self.tableView.bounds
return gradientLayer
}
func refreshBackground() {
tableView.backgroundView = nil
let backgroundView = UIView()
let gradientView = createBackgroundGradient()
backgroundView.layer.addSublayer(gradientView)
tableView.backgroundView = backgroundView
}
Решение этого вопроса: градиентный цвет фона с UIScrollView выглядит так, как я хочу, но когда я меняю свою функцию обновленияBackround на это:
Код: Выделить всё
func refreshBackground() {
if let gradientSublayer = self.gradientSublayer {
gradientSublayer.removeFromSuperlayer()
}
self.gradientSublayer = createBackgroundGradient()
tableView.layer.insertSublayer(self.gradientSublayer ?? createBackgroundGradient(), at: 0)
}
Кто-нибудь знает, как это обойти? Я думал о том, чтобы попытаться раскрасить разные разделы разными частями градиента, но, похоже, это будет очень сложно, потому что различные разделы в таблице могут быть там, а могут и не быть, в зависимости от данных, которые мы получаем. серверная часть (и это, вероятно, будет выглядеть неряшливо, потому что части градиента будут появляться по мере заполнения этих разделов).
Подробнее здесь: https://stackoverflow.com/questions/792 ... gth-of-the