隐藏其中的标签时,UIStackview不调整大小

时间:2018-07-22 03:41:07

标签: ios swift xcode uistackview

嗨,我是UIStackViews的新手。 所以我有一个包含8个标签的垂直Stackview。
但是,我的Stackview的问题在于,每当我在其中隐藏标签时,我的stackview都不会调整大小。

The labels within the Red Rectangle are in my Stackview
When I hide those labels of the Stackview, I want my screen to look like this
However for some reason when I hide those labels, it looks like this instead with all the space visible and the stuff at the bottom doesn't go up

该如何解决?
这是我隐藏标签的方法:

 override func viewDidLoad() {
        super.viewDidLoad()
        showingResultLabel.isHidden = true
        addressLabel.isHidden = true
        costOfKitLabel.isHidden = true
        costOfModularLabel.isHidden = true
        dispatchedFromLabel.isHidden = true
        kitHomecostLabel.isHidden = true
        modularHomecostLabel.isHidden = true
        dispatchFromLabel.isHidden = true

谢谢

2 个答案:

答案 0 :(得分:1)

只需隐藏标签即可。您需要设置约束使其起作用。我上传了约束图像。

enter image description here

stackview的约束

enter image description here

答案 1 :(得分:0)

在堆栈视图中隐藏标签不会影响高度。 我建议,当您想显示一些细节(stackView包含一些UILabel)时,

创建UILabel,例如:

 let label = UILabel()
   label.textColor = .black
   label.text = ""
   label.backgroundColor = .clear

然后将UILabelView添加到堆栈视图

stackViewName.addArrangedSubview(label)

最后,您不必从堆栈视图中隐藏标签,而必须从堆栈视图中删除UILabel

stackView.removeArrangedSubview(label)

所以我认为这会影响您stackView的高度。