我不确定我是否 100% 正确理解它。但如果您想以编程方式将视图添加到堆栈视图,您可以通过以下方式进行。您需要将 UIStackView 连接到您的 ViewController 才能访问它。在那里你可以根据条件添加你的 UIViews。
我创建了一个游乐场示例。所以你可以复制它并在操场上运行它,它也会以视觉方式向你展示。为了更容易,我使用了 UILabels。但是 UIViews 几乎是一样的。
import UIKit
import PlaygroundSupport
class TestViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
title = "Test"
self.view.frame = CGRect(x: 0, y: 0, width: 320, height: 480)
self.view.backgroundColor = UIColor.brown
let stackview = UIStackView(frame: CGRect(x: 0, y: 0, width: 320, height: 480))
stackview.axis = .vertical
stackview.distribution = UIStackViewDistribution.fillEqually
let text = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
text.text = "Hello, i am a label"
let condition = true
if condition {
let text2 = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
text2.text = "Hello, i am another label"
stackview.addArrangedSubview(text2)
}
stackview.addArrangedSubview(text)
self.view.addSubview(stackview)
}
}
let testController = TestViewController()
PlaygroundPage.current.liveView = testController.view
testController