通过故事板使用自动布局创建拉伸 header

Create stretch header using autolayout via storyboard

问题

您好,我遇到过以下问题。我正在创建 header 由故事板中的三个块组成。我正在尝试使用自动布局使其伸展以适应所有设备。 我有三张图片:

右图角示例:

我希望这三张图片居中一行。 结果应如下所示:

第一个解决方案

我创建了以下约束: 对于左侧块:

左图约束:

中间块:

中间图像限制:

右图:

右图限制:

当我 运行 我的应用程序在模拟器上运行时,一切正常,我在所有设备上都看到了很好的结果,但是如果我使用这个约束,我在故事板和控制台中收到了很多警告:Unable to simultaneously satisfy constraints.

因为这个

实际上在控制台中出现警告
  • Trailing to left image equal to 0
  • Leading to right image equal to 0

第二种解决方案

我还尝试对中间的图片进行以下约束:

但此解决方案会产生更多警告

问题

有没有解决方案如何通过故事板创建这样的 header 而不是将宽度作为常量并针对每个屏幕宽度更新它?

所以你需要你写的所有约束,但你也需要添加约束,说明所有这三个图像具有相同的宽度。 例如,告诉第一个与第二个相同,第二个与第三个相同。并且您还需要删除宽度限制。

出现此类错误的原因是您设置了两个项目宽度 = 152*2 = 304。如果此值大于屏幕宽度,您将收到警告。

中间的约束是错误的。它们应该是:

  • middle.leading = left.trailing
  • middle.trailing = right.leading