无法将CAGradientLayer应用为UITableView背景视图

时间:2018-12-06 14:54:50

标签: ios swift uitableview cagradientlayer

我有一个UITableViewController,我正在尝试在上面应用渐变背景。

我希望渐变不仅在一个单元格上,而且可以在整个视图上显示。

我有一个扩展名,该扩展名是我在<a href=... />中调用的函数。我希望这会在我的viewDidLoad

后面应用并显示

但是背景始终是白色的。我将UITableView设置为仅是渐变上的白色图层,但由于背景现在是黑色而没有出现。

HomeController.swift

view.backgroundColor = UIColor.clear

GradientBackgroundView.swift

   extension HomeController {
        fileprivate func applyBackgroundGradientView() -> Void {
            let frame = CGRect(x: 0.0, y: 0.0, width: view.frame.size.width, height: view.frame.size.height)
            let bgView = UIView(frame: frame)
            bgView.layer.insertSublayer(gradientBackgroundView, at: 0)

            tableView.backgroundView = bgView
        }
    }

1 个答案:

答案 0 :(得分:1)

我在您的CAGradientLayer上没有看到任何框。

如果您未设置frame,则不会显示您的视图。

let gradientBackgroundView = GradientBackgroundView()
gradientBackgroundView.frame = CGRect(x: 0.0, y: 0.0, width: view.frame.size.width, height: view.frame.size.height)
view.layer.insertSublayer(gradientBackgroundView, at: 0)