Interface Builder 自动布局和调整大小

Posted

技术标签:

【中文标题】Interface Builder 自动布局和调整大小【英文标题】:Interface Builder Autolayout and Resizing 【发布时间】:2013-02-07 18:11:00 【问题描述】:

所以我有两个关于 Xcode 的 Interface Builder 的问题:

    我正在尝试构建一个界面,左侧有一个标签,右侧有一个文本字段,它们之间有恒定的间距,但我希望文本字段在我水平调整窗口大小时水平扩展保持间距。我添加了一个约束来保持它们之间的间距相等,但是当我移动窗口时,它会调整标签框而不是文本字段的大小。我尝试固定标签的宽度,但它阻止了我调整窗口大小。

    有没有办法同时调整多个项目的大小?就像我有 8 个垂直标签,并且我想将它们全部调整为窗口空间的 8 分之一,我怎么能做到这一点而不只是盯着它呢?如果您可以突出显示所有这些并拖动一个角来调整它们的大小会很容易,但它不会让我这样做。

【问题讨论】:

【参考方案1】:

对于您的第一个问题,您应该从 Utilities Panel -> File Inspector 中取消选中 AutoLayout,然后看看会发生什么。关于第二个,您可以直接从代码中创建所需大小的标签数量,如下所示:

10 个标签的示例:

for (int i=0; i<30; i++)



UILabel *label = [[UILabel alloc] initWithFrame:anyFrame];

[yourView addSubView:label];
[label release]; //if not using ARC



【讨论】:

当我取消选中自动布局时,它只是摆脱了所有约束,这不是我想要做的,因为如果窗口调整大小,它不会调整任何东西。

以上是关于Interface Builder 自动布局和调整大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Interface Builder 中的 UIViewController 中自动调整 UIView Outlet 的大小

在 Interface Builder 中删除自动布局(约束)

Interface Builder 中的自动布局根据外部视图的宽度/高度更改布局

Interface Builder 中的相对自动布局约束

与在 Interface Builder 中使用自动布局相比,SnapKit 有啥优势?

Interface Builder 约束问题