2

我正在尝试使用界面生成器创建以下自动布局:

在视图的顶部:

  • 适合设备宽度的图像视图
  • 图像视图是方形的(高度也等于设备的宽度)

填充图像视图下方的其余空间:

  • 3个等高按钮
  • 它们一起填充了顶部正方形下方的其余空间

这可以仅在 IB 中完成吗?

-斯科特

4

2 回答 2

4

不,它不能,因为您无法在界面生成器中表达关系约束。

除了图像视图的高度之外,您可以执行其他所有操作(几乎,请参见编辑)。您可以在视图上设置一个恒定的高度约束(可能设置为 iPhone 屏幕的宽度),然后为其创建一个出口。

在运行时,如果您在 iPad 上运行(我假设要求是在 iPad 和 iPhone 之间工作,而不是纵向和横向,因为您的描述对横向没有意义)然后删除此约束并添加一个新的固定图像视图的高度与其宽度相同。

以下是设置其余约束的方法。我假设您从一个仅包含其主视图出口的视图控制器开始。

  1. 在图像视图中拖动,默认会填满屏幕。
  2. 使用固定菜单将图像视图的高度固定为 320(然后编辑创建的约束)。这是您创建出口的约束。
  3. 拖入三个按钮
  4. 全部选择它们并同样选择引脚高度
  5. 选择底部按钮,并使用 Pinning 菜单将底部空间固定到 superview
  6. 选择该约束并勾选“标准”复选框。这将增加您的三个按钮以填充剩余空间(加上一点间距)。
  7. 选择所有三个按钮并固定宽度
  8. 选择一个按钮并将尾随空格固定到超级视图。和以前一样,选择此约束并勾选“标准”复选框。按钮将增长以填充视图的宽度。

你希望它看起来像这样:在此处输入图像描述

出于某种原因,IB 在其中一个按钮上添加了高度限制,但不允许我删除。让三个按钮高度相等,并在运行时根据图像视图的间距和高度推导出每个按钮的高度似乎并不令人愉快。可能还需要在运行时删除该约束,或者我可能在一起抨击时遗漏了一些东西。无论如何,希望上面概述的原则是有帮助的。

于 2013-01-14T20:08:29.263 回答
0

要制作UIImageView平方,您需要通过代码制作约束。我认为所有其他要求都可以在 IB 中涵盖,但就个人而言,我建议您通过编码来实现。

祝你好运。

于 2013-01-14T20:11:34.800 回答