UIStackView分发填充同样

所以,我有一个包含四个(4) UIViewUIStackView 。 如果我移除这些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,以适应可见的控件。