如何在swift 3上将UITableViewController的背景颜色更改为渐变颜色

时间:2017-03-25 17:29:47

标签: uitableview swift3

我想将UITableViewController背景颜色更改为渐变颜色。

我的代码如下:

override func viewDidLoad() {
    super.viewDidLoad()

    let gradient = CAGradientLayer()
    let gradientLocations = [0.0,1.0]

    gradient.frame = view.bounds;
    gradient.colors = [primaryColor, secondaryColor]
    gradient.locations = gradientLocations as [NSNumber]?

    let backgroundView = UIView(frame: view.bounds)
    backgroundView.layer.insertSublayer(gradient, at: 0)
    tableView.backgroundView = backgroundView

    tableView.separatorStyle = UITableViewCellSeparatorStyle.none
    tableView.backgroundColor = UIColor.clear

}

它变成黑色。

我发现了这个非常相似的问题,但它无法解决我的问题。 Set gradient behind UITableView

enter image description here

请帮忙! 提前谢谢。

1 个答案:

答案 0 :(得分:2)

我创建了一个带有表视图控制器的新项目,该控制器包含您的代码。我所要做的就是让细胞透明化,就像你所说的那样。它奏效了,所以这让我很好奇。您没有显示primaryColorsecondaryColor是什么。

请注意,您需要在CGColor中使用gradient.colors。我刚尝试使用UIColor,屏幕也一样黑。尝试使用

gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]

或者更确切地说(如果它们确实属于UIColor类型)

gradient.colors = [primaryColor.cgColor, secondaryColor.cgColor]