我有一个 Storyboard,其中包含带有导航栏的 View ,我的目标是让下面的另外 3 个元素(按钮、 View ,我想这是无关紧要的)进行拉伸(stretch),以便它们都具有相同的高度,并相互粘附,即它们之间没有间隙。
我尝试使用 AutoLayout 来实现这一点,方法是将顶部元素的约束设置为与导航栏的垂直间距为 0,与下方元素的垂直间距为 0,以及底部元素的垂直间距为 0,两个 super View 底部和上面的元素。我还添加了所有元素具有相同高度的约束,并且一切都很好,直到我在 Storyboard编辑器中从 iPhone4 切换到 iPhone5 View 时它被 InterfaceBuilder 炸毁删除顶部元素的“坚持导航栏”约束并给出它固定大小(不等于其他两个)。
摆弄了一段时间,以便布局中的任何地方都不存在绝对高度,但是在 iPhone5 和 iPhone4 之间切换通过删除某些约束或将其他约束设置为固定值来破坏我所做的一切。
有人知道使用 AutoLayout 实现此目的的方法吗,或者我是否应该使用带有 flowlayout 的 UICollectionView?
或者换句话说 - 在“ Storyboard中的 UIViewControler + 导航栏”中实现 View 中的三个元素相互粘附并在所有可能的当前和 future 屏幕尺寸上保持相同高度的最佳方法是什么"场景,使用 InterfceBuilder?
(我对在代码中做这件事的想法并不陌生,我知道如何去做,但如果 IB 可能的话,我会这样做。)
最佳答案
您必须至少有一个其他约束才能开始,因为您所描述的内容是不够的——这 3 个 View 中的任何一个都设置了高度(或固有高度),或者您有一个约束也到屏幕底部。后者会导致它在屏幕尺寸变化时爆炸。您确实需要其中一项具有设置的高度,每个项都对上方和下方的项具有垂直间距约束,并且它们的高度都相同。如果您没有其他应该起作用的约束(在垂直方向上)。
关于ios - 使用自动布局在 Storyboard 中分辨率不可知的相同大小的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15602014/