gpt4 book ai didi

ios - View Controller 的 iPhone AutoLayout Root View 无法固定

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:38 25 4
gpt4 key购买 nike

将 View Controller 类与 XIB 结合使用。可以对除顶部/ Root View 之外的所有 View 进行自动布局。不能Pin等,这个view会在另一个XIB等中使用

如何在 View Controller 类的 Root View 的 Root View 中允许/设置自动布局图钉?

View 设置为自由形式/纵向/无/无/一个/比例填充

最佳答案

xib 文件中的 View Controller (在本例中更具体地说,是 View Controller 的 View )只是 View 层次结构的独立表示。在 nib 的特定实例中, Root View Controller 的 View 此时没有 super View 的概念,直到它在应用程序的特定点加载到应用程序中(当它被添加为 subview 时)。通常,可以通过以下几种方式之一指定 View Controller View 的大小(使用自动布局):

  1. 让 View 的内容决定它可以达到的具体大小。基本上,内容将决定您的 View Controller 的 View 有多大(或多小)。为此,请将 View Controller View 内的每个 subview 限制为针对 View Controller 的 View 进行完全定义。 subview 对其父 View 的必需约束强制父 View 符合 subview 。

    可视化的一个好方法是让一个 View 包含一个 UILabel subview 。如果您将标签一直限制为具有所需的 5pt 边距,您的容器 View 将根据文本内容增长以改变大小。 将此选项视为使 subview 的约束成为 View Controller 大小的“主”约束。

    这种方法的唯一缺点是您的 View Controller View 的父 View 将不再对该 View 的大小有任何控制。尝试将约束附加到这样的 View 时,您更有可能遇到“过度约束”状态(“无法满足约束”异常),尤其是在有更多“必需”约束的情况下。

  2. 您的 View Controller View 的父 View 将在其自己的坐标系中指定 View Controller View 的大小和位置。 View Controller View 内的 subview 现在必须足够灵活以对父 View 的动态大小使用react,除非您知道关于此 View 将有多大或多小的一些假设。

    将此选项视为使您的 View Controller View 的大小成为 subview 约束的“主”,因为您的 subview 的约束必须更能容忍大小变化。

    <

Storyboard

如果您使用的是 Storyboard,则可以将对象库中的“容器 View ”添加到 View Controller 的 View ,并向容器 View 添加约束。如果您使用的是裸 xib,则无法在 nib 文件中向裸 View Controller 的 View 添加约束,因为它还没有 super View 的概念。在这种情况下,您将必须在 View 中的代码中设置约束,该 View 将管理您的新 View Controller 的 View (或对所有内容使用 Storyboard)。据我了解,您不能在 Storyboard中使用预构建的 xib。

Child View Controller in Storyboard

关于ios - View Controller 的 iPhone AutoLayout Root View 无法固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22203617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com