具有导航栏和选项卡栏的 UIScroll 以及具有动态高度的容器视图



我正在尝试使用选项卡栏和导航栏在 IB 中布局我的详细信息屏幕。 但是,模拟器运行时的显示存在三个问题:

  1. 屏幕顶部有一个缝隙,
  2. 动态标签内容超出底部的容器视图
  3. 滚动条无法到达内容的底部。

    显示所述
    问题的模拟器的屏幕截图

我的问题是我应该如何设置约束以解决上述问题?我有很多限制,我不确定我哪里

出错了,或者展示我迄今为止采取的步骤的最佳方式是什么。 但这里是我的约束的屏幕截图,以下是我到目前为止采取的约束/步骤的摘要:

  1. 主视图仅包含一个子视图:滚动视图。 滚动视图固定到主视图的顶部、前导、尾随,底部固定到底部布局 Guide.top,

  2. 滚动视图只有 1 个子子视图("内容视图"(。 内容视图固定到顶部 + 64,前导、尾随、底部固定到超级视图,并且它与主视图具有相同的高度和宽度。

  3. 内容视图具有图像、配方标题子视图和阴影背景子视图。 "阴影背景"子视图包含另一个子视图,其中包含一些动态高度标签。 我有约束将这些容器的前侧和后侧固定到超级视图。 我有顶部、底部、前导、尾随约束将这些子视图固定到超级视图和/或彼此,以便从上到下有一个链条。

  4. 阴影背景视图包含动态高度的标签。 标签还具有顶部、前导、尾随和底部的引脚约束,但最后一个标签除外,该标签没有底部约束。

我没有任何更新布局的代码——到目前为止,一切都在 IB 中。

任何帮助将不胜感激!

哈利路亚! 在度过了整整一周令人沮丧的一周之后,我终于在 IB 中找到了用于布置滚动视图 + 导航栏 + 选项卡栏 + 动态标签高度的神奇公式。

我原来的问题是由以下错误引起的:

  • 调整滚动视图插图应设置为 false
  • 内容视图顶部和底部引脚不正确
  • 某些子视图缺少一些高度
  • 最后一个子视图未正确固定在底部

也许不是所有这些步骤都是必需的,也许这不是最完美的解决方案,但这就是对我有用的。 这是那些喜欢图片的人的解决方案图。

  1. 主视图 -> 属性检查器 ->取消选中调整滚动视图内陷复选框。
  2. 添加滚动视图。 这是主视图的唯一子项。 将顶部、前导、尾随空间固定到主视图。 将底部固定到底部布局参考线。
  3. 添加一个子视图(将其命名为"内容视图"(。 这是滚动视图的唯一子项。 固定顶部、前导、尾随空间以滚动视图。 将底部固定到滚动视图,常量为 -49,以考虑选项卡栏。同时将其高度和宽度设置为等于主视图。
  4. 将子子视图添加到内容视图。 顶部固定到超级视图,常数为 62,以说明导航栏。 前导和尾随固定到超级视图。 视图还需要一个高度 - 如果它是动态内容,则为其指定一个固定值或最小值(例如:高度>- 20(。 您可能还需要为高度约束指定较低的优先级,例如 250。
  5. 根据需要继续添加同级子视图。将顶部固定到上一个同级子视图。 将前导和尾部固定到超级视图。 最后一个同级子视图应固定到超级视图。 每个子视图都需要一个高度。 需要有一个连续的约束链(顶部和底部图钉,高度(从顶部子视图到底部,以避免"滚动视图具有不明确的可滚动内容高度"警告,并使滚动正常工作。
  6. 跳一支快乐的舞。

希望这对其他人有所帮助。

使内容视图的顶部约束具有常量 0,而不是 64。对于超出容器视图底部的标签,您必须发布有关布局的更多信息,以便我们提供帮助。

最新更新