普通的UIView没有被添加到UIStackView

时间:2016-09-29 18:36:41

标签: ios swift uiview

我目前正在使用Swift中的iOS应用程序创建一个对象列表。我正在使用UIStackView来组织这些对象,我开始制作一个UIView容器,它主要容纳UILabels。我遇到了一个困扰我的问题,我希望有iOS经验的人可以解释为什么会这样。到目前为止,这是我的简单代码:

override func viewDidLoad() {
    super.viewDidLoad()

    for i in 0...5{
        //Make card in here
        let DynamicView=UITextView(frame: CGRectMake(0, 0, 100, 100))
        DynamicView.backgroundColor=UIColor.greenColor()
        DynamicView.layer.borderWidth=2

        let lbl = UILabel()
        lbl.text="Label " + String(i)
        lbl.backgroundColor = UIColor.whiteColor()
        lbl.layer.borderColor = UIColor.lightGrayColor().CGColor
        lbl.layer.borderWidth = 2.0
        stackView.addArrangedSubview(lbl)
        //stackView.addArrangedSubview(DynamicView)
    }

在这里,我向StackView添加了6个标签,它们成功运行: UILabels in UIStackView

您可以在注释代码中看到我尝试添加UIView,在将其添加到UIStackView之前,它看起来像这样:

UIView no add

当我将它添加到UIStackView(并注释掉之前的标签)时,我希望UIViews出现的区域是空白的:

After add

我在代码中做错了吗?可以将UIViews添加到UIStackViews吗?

1 个答案:

答案 0 :(得分:1)

我认为你没有为Stack View设置top, leading, bottom and trailing约束。同时将堆栈视图的分布设置为同等填充。