Swift 如何修复:在景观美化梯度背景?

Swift 如何修复:在景观美化梯度背景?,swift,view,background,gradient,Swift,View,Background,Gradient,我有一个创建渐变背景的代码。 当我将设备旋转到横向模式时,渐变背景不会填满整个屏幕,有些部分是白色的 我的目标是,每当方向改变时,梯度应该填满整个屏幕 let gradient: CAGradientLayer = CAGradientLayer() let color1 = UIColor(red: 198.0/255.0 , green: 255.0/255.0, blue: 221.0/255.0, alpha: 1.0).cgColor let color2 =

我有一个创建渐变背景的代码。 当我将设备旋转到横向模式时,渐变背景不会填满整个屏幕,有些部分是白色的

我的目标是,每当方向改变时,梯度应该填满整个屏幕

    let gradient: CAGradientLayer = CAGradientLayer()
    let color1 =  UIColor(red: 198.0/255.0 , green: 255.0/255.0, blue: 221.0/255.0, alpha: 1.0).cgColor
    let color2 = UIColor(red: 251.0/255.0, green: 215.0/255.0, blue: 134.0/255.0, alpha: 1.0).cgColor
    let color3 =  UIColor(red: 247.0/255.0, green: 121.0/255.0, blue: 125.0/255.0, alpha: 1.0).cgColor
    gradient.name="asd"
    gradient.colors = [color1,color2,color3]
    gradient.locations = [0.0 , 1.0]
    gradient.startPoint = CGPoint(x: 0.0, y: 0.0)
    gradient.endPoint = CGPoint(x: 1.0, y: 1.0)
    gradient.frame = CGRect(x: 0.0, y: 0.0, width: wid, height: heu)

    self.view.layer.insertSublayer(gradient, at: 0)
}

将渐变层作为特性保留,并在layoutSubview()中更新其帧


尝试读取LayoutSubView上的渐变,或更改其相对于父视图的framegradient.frame=bounds//
var gradientLayer: CAGradientLayer?

override func viewDidLoad() {
    super.viewDidLoad()
    ///
    /// YOUR CODE
    ///
    gradientLayer = gradient
}

override func layoutSubviews() {
    super.layoutSubviews()
    gradientLayer?.frame = self.view.bounds
}