iOS Auto Layout灵活的边距

时间:2014-02-06 10:42:10

标签: ios iphone storyboard interface-builder autolayout

我正在尝试创建一个布局,其中包含 Interface Builder 中静态高度的特定元素之间的灵活垂直边距。由于我不知道如何定义它,我尝试使用具有灵活高度的“spacer”视图。我在Interface Builder中创建的布局如下:

Layout in IB

蓝色矩形是静态高度的,它们的高度不应该改变。但是它们之间的边距和间距应该根据屏幕尺寸而改变。红色矩形是间距视图,应该是清晰的颜色,但我把它们保留为红色,仅用于测试目的。

首先我使用弹簧和支柱创建了布局。实现的效果几乎是正确的,间隔物均匀调整大小,所以我很满意,即使红色矩形与蓝色矩形稍微重叠,但是他们的目的只是间距,这不是问题。即使它们被移除,效果仍然相同。

Springs and struts

然后我尝试使用自动布局创建布局,这是用于视图放置的最现代的API。我固定了所有垂直间距和蓝色矩形的高度。我还固定了垫片的高度,但将它们设置为小于或等于。这是故事板中的结果:

Autolayout in Storyboard

自动布局得到满足,不会显示任何错误。布局适用于4英寸设备,但在3.5英寸设备上运行时,结果如下:

Autolayout on iPhone 4

因此,顶部和底部红色垫片显然高度为0,但中间两个垫片的尺寸保持不变。红色矩形的所有高度约束的优先级相同(默认)。

根据外行的逻辑,不应该所有的红色矩形都按相同的乘数重新调整,因为它们的小于或等于的优先级是相同的吗?

这里发生了什么,我做错了什么?为什么我无法达到使用弹簧和支柱模型显然可以实现的类似效果?

感谢您的帮助!

0 个答案:

没有答案