我有一个启用了自动布局的笔尖,其中包含一个视图控制器的视图,另外还有一个带有占位符视图的窗口,可以将它们添加到其中。占位符具有相对于它的超级视图和窗口中的其他视图的约束,并且在涉及我的视图控制器之前,我让占位符按照我想要的方式调整窗口大小。稍后我加载笔尖并将其顶级视图添加为占位符的子视图,并且我还手动创建约束以使其与占位符的边缘对齐。
一切都很好,我在我的应用程序中的几个实例中使用了这种模式,但在某些情况下,添加视图后,我的窗口会调整大小!它正在缩小到添加视图的最小尺寸,而不是扩大到当前窗口大小的视图。
到目前为止,我发现防止这种情况发生的唯一方法是,在添加视图并创建其约束时,还要设置视图的框架,以使其具有占位符和窗口当前状态的初始大小。有时这没问题,但我希望能够定义更复杂的约束,而不是简单地将每个边缘与占位符超级视图对齐。我不想为每种情况编写帧算法。
有谁知道发生了什么?如果窗口已经决定了占位符的大小,而不是相反,那么在添加子视图以使当前窗口大小仍然优先时我该怎么办?
我已经看到 Xcode 的 IB 窗口中的弹出菜单似乎是关于仅影响子视图和超级视图的约束(对于我的所有笔尖都设置为前者),与此功能相关的是什么?我还没有找到任何关于它的东西。