我想创建一个渐变图层并将其插入视图中,但视图未完全填充...
我的实际代码是:
gradientLayer.frame = topView.bounds
gradientLayer.colors = [UIColor.white.cgColor, UIColor.black.cgColor]
topView.layer.insertSublayer(gradientLayer, at: 0)
This is my code and storyboard (In red is the part I want to fill)
我对此没有任何线索..它适用于全屏视图,但不是更多的视图..
当然,从故事板导入顶视图。也许我在view.bound中犯了一个错误。我不知道。我是swift和iOS的初学者,所以一切皆有可能!
编辑: 问题不是视图的大小,而是图层的大小太小,因为视图的背景颜色填充了所有空间而不是图层
答案 0 :(得分:7)
这与故事板中的约束有关,直到子视图布局后才会应用。在viewDidLoad()
,视图具有来自故事板的固定大小。如果您将设置图层框架的代码移动到viewDidLayoutSubviews()
,则约束已应用于topView
,然后它具有正确的框架。然后,您可以设置图层的框架。
将此添加到您的ProfileController
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
gradientLayer.frame = topView.frame
}
然后它将填满整个视图。