UIStackView分配同样填写

时间:2016-10-26 06:09:05

标签: ios swift autolayout constraints uistackview

所以,我有一个UIStackView,其中包含四(4)个UIView个。如果我删除其中一({1)个UIView,其他三个(3)将填充UIStackView中的整个空格。

我的问题:

如何在UIView上添加最大高度,以便它不会填充UIStackView的整个空格,即使分布均匀填充?我读了一些关于添加约束的内容,但我无法使其工作。顺便说一下,我正在使用swift。

谢谢。

3 个答案:

答案 0 :(得分:12)

如果我没有误会,你面临的是:

enter image description here

你要求的是:

enter image description here

好吧,如果那是你的情况 - 我希望它是 - 我通过做一个非常简单的把戏来实现这个目的:

P.S:我假设你为stackView添加了approrpriate约束。

如果您的stackView没有“height”约束,请添加一个:

enter image description here

现在,将它作为IBOutlet添加到指定的ViewController,在我的示例中,我称之为stackHeight

@IBOutlet weak var stackHeight: NSLayoutConstraint!

关于你要隐藏视图的事件 - 在我的例子中,我隐藏在IBAction上的橙色按钮,当它点击它时,应该隐藏 - 你需要获得视图的高度要隐藏和减去stackHeight.constant

    @IBAction func orangeTapped(_ sender: AnyObject) {
        orange.isHidden = true

        // here we go:
        stackHeight.constant = stackHeight.constant - orange.frame.size.height
    }

答案 1 :(得分:2)

删除堆栈视图底边的约束。然后它将调整大小以适合可见的控件。

答案 2 :(得分:0)

尝试更改"发布"堆栈视图的“属性”检查器中的属性为“等间距”。它应该工作。

或者您可以将其更改为同等填充以在“堆栈”视图中平均填充剩余的3个视图。