Постепенно меняйте цвет фона слоя TableViewCell в зависимости от процента прокрутки - PullRequest
1 голос
/ 23 апреля 2020

Мне нужна помощь в постепенном изменении цвета фона слоя TableViewCell в зависимости от массива градиентных цветов при прокрутке.

let gradientColors = [UIColor.red, UIColor.blue, UIColor.green, UIColor.cyan]

Таким образом, видимые ячейки сверху до середины экрана будут иметь цвет фона между UIColor.red -> UIColor.blue и от середины до нижней части экрана будет иметь цвет фона между UIColor.green -> UIColor.cyan. Примечание они должны постепенно менять цвет фона при прокрутке.

1 Ответ

0 голосов
/ 23 апреля 2020

Если вы добавите tableView поверх представления UIViewController:

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tblView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    tblView.delegate = self
    tblView.dataSource = self

    //Make background of tableView transparent
    tblView.backgroundColor = .clear

    // Create gradient background
    let gradient = CAGradientLayer()
    gradient.frame = view.bounds
    gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor, UIColor.green.cgColor, UIColor.cyan.cgColor]
    view.layer.insertSublayer(gradient, at: 0)
}



func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 10 //as an example
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    cell.backgroundColor = .clear // make cell to have Clear colour
    return cell
}
}

Если вы хотите, чтобы некоторая непрозрачность сделала ячейки более видимыми, вы можете изменить ".clear" на "UIColor.white.withAlphaComponent (0.2 ) ", так что текст сверху будет немного более читабельным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...