渐变并没有填满所有的UIView

Psy*_*ker 3 iphone uiview ios cagradientlayer swift

我想创建一个渐变图层并将其插入视图中,但视图未完全填充...

我的实际代码是:

    gradientLayer.frame = topView.bounds
    gradientLayer.colors = [UIColor.white.cgColor, UIColor.black.cgColor]

    topView.layer.insertSublayer(gradientLayer, at: 0)
Run Code Online (Sandbox Code Playgroud)

这是我的代码和故事板(红色是我要填写的部分)

这是我的结果......

我不知道它..它适用于全屏视图,但不是更多的小视图..

当然,顶视图是从故事板导入的.也许我在view.bound中犯了一个错误我不知道.我是swift和iOS的初学者,所以一切皆有可能!

编辑:问题不是视图的大小,而是图层的大小太小,因为视图的背景颜色填充所有空间而不是图层

Nor*_*ast 8

这与故事板中的约束有关,直到子视图布局后才应用.在viewDidLoad()视图中具有来自故事板的固定大小.如果移动将图层框架设置为viewDidLayoutSubviews()已应用约束的代码,topView则它具有正确的框架.然后,您可以设置图层的框架.

将其添加到您的ProfileController

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    gradientLayer.frame = topView.frame
}
Run Code Online (Sandbox Code Playgroud)

然后它将填满整个视图.