特定布局的 Xcode 约束

Posted

技术标签:

【中文标题】特定布局的 Xcode 约束【英文标题】:Xcode constraints for specific layout 【发布时间】:2013-08-23 08:38:55 【问题描述】:

我正在尝试使用约束在 Interface Build 中获得特定布局,但无法确定我需要的约束。在使用图表后,我将尝试演示我的想法。我有一个带有背景图像的标题,然后在其中放置了两个按钮。在 iPhone 5 上,我将标题换成更大的标题,这会导致标题增长到正确的大小,但我无法弄清楚我需要对按钮施加什么限制才能让它们间隔我想要(见 iPhone 5 图)

在 iPhone 4 上

-------------------------
|Button 1               | <- Header
|Button 2               |
-------------------------

在 iPhone 5 上(需要弄清楚实现这一点的限制条件)

-------------------------
|Button 1               |
|                       |
|Button 2               |
|                       |
|-----------------------|

我希望 Button 2 在 Button 1 底部和标题视图底部之间的空间居中。我还希望(尽管不是非常重要)将按钮 1 稍微向下移动,使其远离标题的顶部。有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

在 UIView 包装器中包装 button2。将 button2 放置在此包装器的垂直中心。

包装器应该占用视图的剩余空间。将包装的顶部边缘连接到按钮 1 的底部边缘。将包装器的底部边缘附加到超级视图的底部边缘。

等等:

现在你只需要改变包装的背景颜色。

要将 button1 向下移动,您必须进入代码。将定义 button1 顶部边缘的约束连接到 IBOutlet,以便您可以将约束更改为视图高度的倍数。

【讨论】:

谢谢 - 这回答了问题,但最后我需要它略有不同(第二行按钮比在下部空间居中略高),所以最终不得不修改约束用于代码中的包装器视图。我希望你能从界面生成器中更好地控制约束,但它看起来不像。此外,当您尝试设置约束并且 Xcode 在您修改不同视图时不断更改它们时,它也无济于事。我想我还需要学习更多 Xcode 黑魔法:)

以上是关于特定布局的 Xcode 约束的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6:按钮在所有设备上的图像视图中都停留在特定位置吗?约束?

Superview边缘的程序化自动布局约束

约束/自动布局栏隐藏,Xcode 6

Xcode 6 不遵守自动布局约束

Xcode 6.3 故事板自动布局约束

AutoLayout - 保持图像与水平约束的比例(Swift Xcode 6)