UIStackView分发填充同样
所以,我有一个包含四个(4) UIView
的UIStackView
。 如果我移除这些UIView
的一个,其他三个将填充UIStackView
的整个空间。
我的问题:
我怎样才能在UIView
上添加一个最大高度,使它不会填充UIStackView
的整个空间,即使分布是平等的填充? 我读了一些关于添加约束的东西,但是我无法使其工作。 顺便说一句,我正在使用swift。
谢谢。
如果我没有错,你面临的是:
你在问什么是:
那么,如果这是你的情况 – 我希望它是 – ,我通过做一个非常简单的伎俩来实现这一点:
PS:我假设你为你的stackView添加了approrpriate约束。
如果您的堆栈视图没有“等高”约束,请添加一个:
现在,将它作为IBOutlet添加到分配的ViewController中,在我的示例中,我将其stackHeight
:
@IBOutlet weak var stackHeight: NSLayoutConstraint!
在你想隐藏视图的事件中 – 我的例子中,我隐藏了IBAction上的橙色button,当它被敲击时,它应该被隐藏 – 你需要获得你想要的视图的高度隐藏并从stackHeight.constant
减去:
@IBAction func orangeTapped(_ sender: AnyObject) { orange.isHidden = true // here we go: stackHeight.constant = stackHeight.constant - orange.frame.size.height }
希望这可以帮助。
尝试将堆栈视图的“属性”检查器中的“分发”属性更改为等间距。 它应该工作。
或者您可以将其更改为平等填充以在堆栈视图中平均填充剩余的3个视图。
删除堆栈视图底部的约束。 然后它将resize,以适应可见的控件。