OStack程序员社区-中国程序员成长平台

标题: iOS 自动布局 : Can this be done with IB? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 00:31
标题: iOS 自动布局 : Can this be done with IB?

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

在 View 的顶部:

填充 ImageView 下方的其余空间:

这可以仅在 IB 中完成吗?

-斯科特



Best Answer-推荐答案


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

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

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

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

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

您希望它看起来像这样:enter image description here

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

关于iOS 自动布局 : Can this be done with IB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14325688/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4