如何使用 CAGradientLayer 以编程方式将渐变设置为 swift 中的 UIView(子视图)?

How to set a gradient using CAGradientLayer to a UIView (subview) in swift programatically?

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        view.addSubview(container)
        container.customAcnhor(top: view.topAnchor, left: view.leftAnchor, right: view.rightAnchor, height: 350)
        
    }

    let container : UIView = {
        var view = UIView()
        let gradient = CAGradientLayer()
        gradient.frame = view.bounds
        gradient.colors = [UIColor.blue.cgColor, UIColor.red.cgColor]
        view.layer.insertSublayer(gradient, at: 0)
        
        return view
    }()
}

代码上下文

上面的 class 有一个 container 类型 UIView 其中包含一个 CAGradientLayer。我正在尝试将渐变显示到 子视图 ,我将此容器(子视图)添加到主视图。
下面是一个类似的例子,说明我想如何实现这一点。图像上的蓝色需要有我的自定义渐变。
有人可以帮我解决这个问题吗?

您可能需要在布局 container view 后再次设置 gradient layer 的框架。

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        view.addSubview(container)
        container.customAcnhor(top: view.topAnchor, left: view.leftAnchor, right: view.rightAnchor, height: 350)
        gradient.colors = [UIColor.blue.cgColor, UIColor.red.cgColor]
    }
    let gradient = CAGradientLayer()

    lazy var container : UIView = {
        var view = UIView()
        view.layer.insertSublayer(gradient, at: 0)
        return view
    }()
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        gradient.frame = container.bounds
    }
}