UIStackView 高度,内容在中间而不是在顶部

UIStackView height, content inside in the middle not at top

我有一个 UIStackview,当它充满一堆东西时,它很好,但是,当它充满 1 或 2(例如)时,它会分散它们而不是将它们放在顶部。我做错了什么?

事情是这样的。我希望它们位于顶部,而 No 就在其下方。

for i in 0..<self.itemSpecificsArray.count {
                    let itemSpecificName = UILabel()
                    let itemSpecificValue = UILabel()

                    itemSpecificName.textColor = UIColor(red: 236.0 / 255.0, green: 91.0 / 255.0, blue: 110.0 / 255.0, alpha: 1.0)
                    itemSpecificName.textAlignment = .left
                    itemSpecificName.font = UIFont.boldSystemFont(ofSize: 18.0)

                    itemSpecificValue.textColor = UIColor.black
                    itemSpecificValue.textAlignment = .left
                    itemSpecificValue.font = UIFont.systemFont(ofSize: 15.0)

                    print(self.itemSpecificsArray[i].itemSpecificName)
                    print("** \(self.itemSpecificsArray[i].itemSpecificValue)")
                    itemSpecificName.text = self.itemSpecificsArray[i].itemSpecificName
                    itemSpecificValue.text = self.itemSpecificsArray[i].itemSpecificValue

                    self.mainSectionItemSpecifics.addArrangedSubview(itemSpecificName)
                    self.mainSectionItemSpecifics.addArrangedSubview(itemSpecificValue)
                     if (i == self.itemSpecificsArray.count) {
                        let view = UIView()
                        self.mainSectionItemSpecifics.addArrangedSubview(view)
                    }
                }

对于每个索引,它都有一个 itemSpecificName 和 itemSpecificValue。如果我需要将这两个标签放在视图中,那么我可以这样做...这可能会解决问题,不是吗?

UIStackView 想要拉伸其排列的子视图以填充它自己的(堆栈视图的)边界。如果您不想拉伸标签,则需要更改 UIStackView 上的约束,以便它可以缩小以适合其子视图,或者将已排列的子视图添加到可以吸收提取物的堆栈视图中 space。例如,您可以在两个标签之后添加一个没有约束的普通 UIView。自动布局会将堆栈视图边界的额外 space 提供给 UIView.