我正在尝试使用界面生成器创建以下自动布局:
在 View 的顶部:
- 适合设备宽度的 ImageView
- ImageView 是方形的(高度也等于设备的宽度)
填充 ImageView 下方的其余空间:
- 3 个等高按钮
- 它们一起填满了顶部正方形下方的其余空间
这可以仅在 IB 中完成吗?
-斯科特
Best Answer-推荐答案 strong>
不,它不能,因为您无法在界面生成器中表达关系约束。
除了 ImageView 的高度之外,您可以执行其他所有操作(几乎,请参见编辑)。您可以在 View 上设置一个恒定的高度约束(可能设置为 iPhone 屏幕的宽度),然后为其创建一个导出。
在运行时,如果您在 iPad 上运行(我假设要求是在 iPad 和 iPhone 之间工作,而不是在纵向和横向之间工作,因为您的描述对横向没有意义)然后删除此约束并添加新的固定 ImageView 的高度与其宽度相同。
以下是设置其余约束的方法。我假设您从一个仅包含其主视图导出的 View Controller 开始。
- 拖入图片 View ,默认填满屏幕。
- 使用固定菜单将 ImageView 的高度固定为 320(然后编辑创建的约束)。这是您创建导出的约束。
- 拖入三个按钮
- 全部选择它们并平均固定高度
- 选择底部按钮,然后使用固定菜单将底部空间固定到 super View
- 选择该约束并勾选“标准”复选框。这将增大您的三个按钮以填充剩余空间(加上一点间距)。
- 选择所有三个按钮并固定宽度相同
- 选择一个按钮并将尾随空格固定到 super View 。和以前一样,选择此约束并勾选“标准”复选框。按钮将增长以填充 View 的宽度。
您希望它看起来像这样:
出于某种原因,IB 在其中一个按钮上添加了高度限制,但不允许我删除。让三个按钮高度相等,并在运行时根据 ImageView 的间距和高度推导出每个按钮的高度似乎并不令人愉快。可能还需要在运行时删除该约束,或者我可能在一起抨击时遗漏了一些东西。无论如何,希望上面概述的原则是有帮助的。
关于iOS 自动布局 : Can this be done with IB?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/14325688/
|