将渐变图层添加到 tableview

D-A*_* UK 6 uitableview ios cagradientlayer swift

我一直试图弄清楚如何向 tableView 添加渐变图层,并尝试了很多不同的东西,但我永远无法让表格视图单元格显示出来,无论我有多少带来的子视图或发送子视图做。

let gradientLayer = CAGradientLayer()

gradientLayer.frame = view.bounds

gradientLayer.colors = [UIColor(red: 125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0).cgColor, UIColor(red: 125/255.0, green: 125/255.0, blue: 255/255.0, alpha: 1.0).cgColor]

gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0)

tableView.layer.addSublayer(gradientLayer)
Run Code Online (Sandbox Code Playgroud)

不管带来子视图和发送子视图的组合有多少,我似乎总是得到这个并且单元格不会出现在前面:

在此处输入图片说明

有谁知道如何解决这个问题,或者如何做我想做的另一种方式来使它工作?

非常感谢任何帮助,谢谢。

AGM*_*zim 8

创建背景视图并将其分配给TableView

func setGradientToTableView(tableView: UITableView, _ topColor:UIColor, _ bottomColor:UIColor) {

    let gradientBackgroundColors = [topColor.CGColor, bottomColor.CGColor]
    let gradientLocations = [0.0,1.0]

    let gradientLayer = CAGradientLayer()
    gradientLayer.colors = gradientBackgroundColors
    gradientLayer.locations = gradientLocations

    gradientLayer.frame = tableView.bounds
    let backgroundView = UIView(frame: tableView.bounds)
    backgroundView.layer.insertSublayer(gradientLayer, atIndex: 0)
    tableView.backgroundView = backgroundView
}
Run Code Online (Sandbox Code Playgroud)

TableView单元格颜色也清晰:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.backgroundColor = UIColor.clearColor()
}
Run Code Online (Sandbox Code Playgroud)