我尝试创建的屏幕非常简单。我有两个 UIViews 堆叠在一起。顶部的 UIView,topView,高度为 40px,下面的 UIView,botView,占据了屏幕的其余部分。但是,有时 topView 不应该出现,我希望 botView 占据整个屏幕。
我尝试过在两个 View 上设置宽度、前导/尾随空间。然后 topView 获取到顶部布局指南的距离,botView 获取到底部布局指南的距离,然后是 topView 和 botView 之间垂直间距的附加约束。但这导致 xcode 对我大喊大叫,说我没有对其中一个 View 设置高度或 y 约束。当然,我不能设置高度限制,因为我不希望它们中的任何一个都是固定高度。
我确定这里一定有一个优雅的约束解决方案,但我似乎无法弄清楚。想法?
最佳答案
如果 topView
应始终为 40px 高度,则为 topView
的高度添加一个约束。
至于botView
,您可以保留当前约束,即其顶部必须与topView
的底部相关联。但是为底部 View 添加另一个约束,其优先级低于 required
,表示它应该距离其父 View 顶部 0px。这样,当您从包含 View 中删除 topView
时,botView
与 topView
相关的约束将被删除,因此将满足较低的要求优先级约束。
如果你想将 topView
推回,重新创建 botView
到 topView
远距离约束 required
优先级。
关于ios - Interface Builder中没有固定高度,约束困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24513755/