使用自动布局调整子视图的大小

Posted

技术标签:

【中文标题】使用自动布局调整子视图的大小【英文标题】:Resizing subviews with auto layout 【发布时间】:2012-12-16 11:33:47 【问题描述】:

如果我有一个带有 XIB 的 viewController,启用自动布局并且主视图(我的意思是 self.view)中有一个子视图,其宽度和高度与父视图相同。

如果我将此控制器放在另一个控制器中(使用 addchildController 包含模式),调整此控制器的容器大小,内部控制器的 self.view 会发生变化,但子视图/子视图不会调整大小!我该怎么办?

使用 autoresizingmask 我知道怎么做,但我需要使用自动布局!

感谢您的帮助!

【问题讨论】:

【参考方案1】:

确保子视图已将 translatesAutoresizingMaskIntoConstraints 设置为 YES。然后您可以简单地设置自动调整掩码,ios 会为其创建适当的布局约束。

如果您通过代码添加子视图,则必须手动创建并添加子视图和容器视图之间的约束。 Interface Builder 只能在您在 IB 中看到的视图之间创建此类约束。

【讨论】:

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

根据最大的子视图使用自动布局调整超级视图的大小

我们可以将具有自动布局的 XIB 加载为以编程方式创建的没有自动布局的视图的子视图,并使用父视图调整子视图的大小吗?

使用自动布局动态更改子视图后调整超级视图的大小

使用自动布局调整同级视图的大小时,使用子视图重新定位 UIView 不起作用

调整子视图大小的自动布局问题

如何使用自动布局调整视图大小以适合标签子视图?