所以,我有一个UIStackView
,其中包含四(4)个UIView
个。如果我删除其中一({1)个UIView
,其他三个(3)将填充UIStackView
中的整个空格。
我的问题:
如何在UIView
上添加最大高度,以便它不会填充UIStackView
的整个空格,即使分布均匀填充?我读了一些关于添加约束的内容,但我无法使其工作。顺便说一下,我正在使用swift。
谢谢。
答案 0 :(得分:12)
如果我没有误会,你面临的是:
你要求的是:
好吧,如果那是你的情况 - 我希望它是 - 我通过做一个非常简单的把戏来实现这个目的:
P.S:我假设你为stackView添加了approrpriate约束。
如果您的stackView没有“height”约束,请添加一个:
现在,将它作为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个视图。