UIStackView Distribution Fill Equally
autolayout, constraints, ios, swift, uistackview
Solution
As a confirmation, this is the current behavior:
And this is required one:
You can follow this simple trick to achieve it:
P.S: I assume that you added the needed appropriate constraints for your stack view.
If your stack view doesn't have a "height" constraint, add one:
Now, add it as an `IBOutlet` to the assigned ViewController; In my example, I'm calling it `stackHeight`:
@IBOutlet weak var stackHeight: NSLayoutConstraint!
In the event that you want to hide the view (in my example, I'm hiding the orange button based on `IBAction` assigned to itself, when tapping on it, should be hidden), you need to get the height of the view that you want to hide and subtract from `stackHeight.constant`:
@IBAction func orangeTapped(_ sender: AnyObject) {
orange.isHidden = true
// here we go:
stackHeight.constant = stackHeight.constant - orange.frame.size.height
}
Problem
So, I have a `UIStackView` that contains four (4) `UIView`s. If I remove one (1) of those `UIView`s, the other three (3) will fill the entire space in the `UIStackView`. MY QUESTION: How can I add a max height on a `UIView` so that it won't fill the entire space of the `UIStackView` even though the distribution is filled equally? I read something about adding a constraint but I'm not able to make it work. I'm using swift by the way. Thank you.