2013-03-24 27 views
1

我有一个包含带有导航栏的视图的故事板,我的目标是让另外3个元素在下面(按钮,视图,我想它是无关紧要的)有相同的高度,彼此粘在一起,即它们之间没有间隙。使用自动布局的故事板中分辨率相同的大小的元素

我试图使用AutoLayout来实现这一点,通过设置顶部元素的约束使得导航栏的垂直间距为0,下面元素的垂直间距为0,底部元素的垂直间距为0 superview底部和上面的元素。我还添加了约束条件,即所有元素都具有相同的高度,并且一切都很好,直到我在Storyboard编辑器中从iPhone4切换到iPhone5视图时,它被InterfaceBuilder炸开,删除顶部元素的“粘贴到导航栏”约束并给出它固定大小(不等于其他两个)。

摆弄它一段时间,以便布局中任何地方都不存在绝对高度,但是切换iPhone5和iPhone4可以通过删除某些约束或将其他设置为固定值来打破我所做的一切。

有人知道一种方法来实现这一点使用AutoLayout,或者我应该去UICollectionView与flowlayout?或者换一种说法 - 在视图中实现三个元素的最佳方式是,在UIViewControler +导航栏中,相互之间保持相同的高度并保持相同的高度。故事板“场景,使用InterfceBuilder?

(我并不陌生,在代码中做它的想法,我想知道如何去了解它,但如果它是可能的IB我会走那条路。)

回答

2

你必须有至少有一个其他约束在那里开始,因为你描述的内容是不够的 - 这三个视图中的任何一个都有其高度设置(或者内在高度),或者你对屏幕底部有一个限制以及。后者会导致它在屏幕尺寸变化时炸毁。你确实需要有一个具有设定高度的项目,每个项目都有一个垂直间距约束条件,高于和低于这个高度,并且它们的高度都一样。如果你没有其他的限制(在垂直方向)应该工作。

+0

谢谢,仔细清理所有孤立约束后,它开始按预期工作,除了我实际上仍然期望IB在iPhone4/iPhone5高度切换时不会破坏/移除任何约束。我还忘记考虑电话状态栏,从而错误计算了第一个元素的最小高度。 – maksa 2013-03-25 21:37:21

相关问题