我想创建一个渐变层并将其插入到 View 中,但 View 未完全填充...
我的实际代码是:
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 但不适用于更小的 View ..
俯 View 当然是从 Storyboard 中导入的。也许我在 view.bound 上犯了一个错误我不知道。我是 swift 和 iOS 的初学者,所以一切皆有可能!
编辑: 问题不在于 View 的大小,而是层的大小太小,因为 View 的背景色填满了所有空间而不是层
最佳答案
这与在布局 subview 之前不应用 Storyboard中的约束有关。在 viewDidLoad()
中, View 具有 Storyboard中的固定大小。如果将设置图层框架的代码移动到 viewDidLayoutSubviews()
,则约束已应用于 topView
,然后它具有正确的框架。然后您可以设置图层的框架。
将此添加到您的 ProfileController
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
gradientLayer.frame = topView.frame
}
然后它将填满整个 View 。
关于ios - 渐变不填满所有的UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47441262/