这里是添加堆栈视图背景颜色的简要概述。
class RevealViewController: UIViewController {
@IBOutlet private weak var rootStackView: UIStackView!
创建圆角背景视图
private lazy var backgroundView: UIView = {
let view = UIView()
view.backgroundColor = .purple
view.layer.cornerRadius = 10.0
return view
}()
为了让它显示为背景,我们将它添加到索引 0 处的根堆栈视图的 subviews 数组中。这将它放在堆栈视图的排列视图后面。
private func pinBackground(_ view: UIView, to stackView: UIStackView) {
view.translatesAutoresizingMaskIntoConstraints = false
stackView.insertSubview(view, at: 0)
view.pin(to: stackView)
}
通过在 UIView 上使用一个小扩展,添加约束以将 backgroundView 固定到堆栈视图的边缘。
public extension UIView {
public func pin(to view: UIView) {
NSLayoutConstraint.activate([
leadingAnchor.constraint(equalTo: view.leadingAnchor),
trailingAnchor.constraint(equalTo: view.trailingAnchor),
topAnchor.constraint(equalTo: view.topAnchor),
bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
}
从viewDidLoad 调用pinBackground
override func viewDidLoad() {
super.viewDidLoad()
pinBackground(backgroundView, to: rootStackView)
}
参考来自:HERE