假设我有一个名为 container
的 View 。 container
包含 5 个 UIButtons
。我想在 container
上添加一个高度 NSLayoutConstraint
,这个高度应该等于其 subview 中最高按钮的 NSLayoutHeightAttribute
。
我没有看到一个直接的方法来做到这一点。有人有什么想法吗?
最佳答案
每个 subview (按钮)都需要一个约束,指定容器的高度应大于或等于 subview 的高度。为该约束赋予高优先级,例如 UILayoutPriorityRequired
(这是默认设置)。
然后再对容器的高度添加一个约束,指定它的高度应为零。为该约束赋予低优先级,例如 UILayoutPriorityLow
。由于自动布局会尽量减少未满足约束的错误,因此它会使容器尽可能短,同时仍然满足所有更高优先级的约束。
我在 this gist 中放了一个例子.它产生这样的结果:
蓝色 View 具有固定的高度。 tan view 是 blue views 的 superview 并且它的高度如我上面描述的那样受到限制。我将每个 subview 的底部固定到容器的底部,但您可以改为固定顶部或 Y 中心。
关于ios - 自动布局高度等于 MAX(多个 View 高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17117799/