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
}