OGeek|极客世界-中国程序员成长平台

标题: ios - 使用 Autolayout 和 Interface Builder 垂直展开/间隔的屏幕元素 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:29
标题: ios - 使用 Autolayout 和 Interface Builder 垂直展开/间隔的屏幕元素

我有一个相对简单的纯纵向 UI,布局在 Storyboard 中,其中包含我想要垂直展开以填充 3.5 英寸和 4 英寸屏幕的项目。

换句话说,我希望调整控件之间的间距,以便 UI 可以很好地填满屏幕,而与屏幕尺寸无关。

这似乎不是一件不寻常的事情,但是我无法让 Interface Builder(在 Xcode 5 中)添加正确的约束 - 我似乎只能让它添加固定的垂直空间限制,不会针对不同的屏幕尺寸进行调整。

有没有人知道如何在不借助程序化 UI 构建的情况下做到这一点?我已经投入了大量精力来使基于 Storyboard 的 UI 恰到好处。

该解决方案需要同时在 iOS 6 和 7 上运行。谢谢!



Best Answer-推荐答案


如何做到这一点取决于当屏幕尺寸发生变化时您想要进行什么样的调整。一种方法是分别为 super View 的顶部和底部提供顶部和底部大多数 View 的垂直间距约束。添加一个 View ,我通常在垂直堆叠的所有 View 之间使用不带文本的 UILabel,并使它们彼此具有相等的高度。给其中一个“间隔” View 一个固定的高度,但对其进行编辑,使其优先级小于 1000(这意味着它不是必须满足的)。然后在每个“真实” View 和“间隔”的上方和下方的每个最近邻居之间添加间距约束,以便您将所有 View 从上到下通过垂直间距约束连接在一起。当屏幕尺寸改变时,唯一可以改变的将是“间隔”的高度,因为优先级小于 1000,所有其他约束都是强制性的。我的约束如下所示:

enter image description here

每个标签与它们上方和下方的“真实” View 都有标准(8 磅)间距。顶 View 和底 View 应该与屏幕边缘有任何间距。

关于ios - 使用 Autolayout 和 Interface Builder 垂直展开/间隔的屏幕元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19995040/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4