在我的 swift
应用程序中,我将渐变应用于我的 View 。我使用以下代码来完成:
@IBOutlet weak var gradientView: UIView!
override func viewDidLoad(){
super.viewDidLoad()
let layer = CAGradientLayer()
layer.frame = CGRect(x: 0, y: 0, width: self.gradientView.frame.width, height: self.gradientView.frame.height)
layer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(layer)
}
在我的 Storyboard中,gradientView
是黑色的:
它的约束是:
所以它接触每一侧的边缘,顶部和底部的白色面板。
当我在 iphone5 模拟器中运行它时,我有:
这很好。但是当我在 iphone 6s 上运行它时,我看到:
这里有什么问题,因为应用了约束?
最佳答案
问题是您的 gradientView
的框架尚未在 viewDidLoad
中更新。试试这个:
let gradientLayer = CAGradientLayer()
override func viewDidLoad(){
super.viewDidLoad()
gradientLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(gradientLayer)
}
override func viewDidLayoutSubviews(){
super.viewDidLayoutSubviews()
gradientLayer.frame = gradientView.bounds
}
关于ios - 我的观点在 iphone 5 和 iphone 6 上看起来不同,即使它有限制 - 这里有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40533692/