1

我有一个包含带有导航栏的视图的故事板,我的目标是在下面有另外 3 个元素(按钮、视图,我想这无关紧要),它们可以拉伸,使它们都具有相同的高度,并相互粘连,即没有间隙它们之间。

我尝试使用 AutoLayout 来实现这一点,方法是将顶部元素的约束设置为导航栏的垂直间距为 0,垂直间距为 0,下面的元素,底部元素的垂直间距为 0,超级视图底部和上面的元素。我还添加了所有元素具有相同高度的约束,一切都很好,直到我在 Storyboard 编辑器中从 iPhone4 切换到 iPhone5 视图时,InterfaceBuilder 删除了顶部元素的“坚持导航栏”约束并给出它固定大小(不等于其他两个)。

摆弄了一段时间,因此布局中的任何地方都不存在绝对高度,但是在 iPhone5 和 iPhone4 之间切换会破坏我所做的一切,方法是删除一些约束或将其他一些约束设置为固定值。

有人知道使用 AutoLayout 实现此目的的方法,还是我应该使用带有 flowlayout 的 UICollectionView?

或者换一种说法 - 在“故事板中的 UIViewControler + 导航栏”场景中,实现三个元素以相互粘连并在所有可能的当前和未来屏幕尺寸上保持相同高度的最佳方法是什么,使用InterfceBuilder?

(我对在代码中执行此操作的想法并不陌生,我知道如何去做,但如果可以使用 IB,我会这样做。)

4

1 回答 1

2

您必须在那里至少有一个其他约束才能开始,因为您所描述的还不够——这三个视图中的一个有其高度设置(或固有高度),或者您对底部有一个约束屏幕的也是如此。后者会导致它在屏幕尺寸变化时爆炸。您确实需要有一个具有设定高度的项目,每个项目对上方和下方的项目都有垂直间距约束,并且它们的高度都相同。如果您没有其他应该起作用的约束(在垂直方向上)。

于 2013-03-24T18:14:38.793 回答