iOS8: viewDidLayoutSubviews() 隐藏故事板自动布局中的元素
iOS8: viewDidLayoutSubviews() hides elements in Storyboard Auto-Layout
设置:
我有一个包含 View
和 Container View
的视图控制器。
我已经使用 class 大小设置了 View
和 Container View
。
下面的代码很好地添加了渐变:
class ViewController: UIViewController {
@IBOutlet weak var graphView: UIView!
@IBOutlet weak var containerView: UIView!
let backgroundColor = CAGradientLayer().graphViewBackgroundColor()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
backgroundColor.frame = self.graphView.bounds
self.graphView.layer.addSublayer(backgroundColor)
}
}
输出:
代码中没有任何约束。
问题:
但是,我确实有一个黑色背景的标签没有出现。如果我注释掉以下行,则会出现标签:
//backgroundColor.frame = self.graphView.bounds
//self.graphView.layer.addSublayer(backgroundColor)
输出:
问题:
为什么渐变隐藏了自动布局中的 UILabel 元素?
你试过把标签放在前面吗?
graphView.bringSubviewToFront(label)
设置:
我有一个包含 View
和 Container View
的视图控制器。
我已经使用 class 大小设置了 View
和 Container View
。
下面的代码很好地添加了渐变:
class ViewController: UIViewController {
@IBOutlet weak var graphView: UIView!
@IBOutlet weak var containerView: UIView!
let backgroundColor = CAGradientLayer().graphViewBackgroundColor()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
backgroundColor.frame = self.graphView.bounds
self.graphView.layer.addSublayer(backgroundColor)
}
}
输出:
代码中没有任何约束。
问题:
但是,我确实有一个黑色背景的标签没有出现。如果我注释掉以下行,则会出现标签:
//backgroundColor.frame = self.graphView.bounds
//self.graphView.layer.addSublayer(backgroundColor)
输出:
问题:
为什么渐变隐藏了自动布局中的 UILabel 元素?
你试过把标签放在前面吗?
graphView.bringSubviewToFront(label)