在 IB 中,当我调整父视图的大小时,如何让子视图保持与父视图相同的大小?

Posted

技术标签:

【中文标题】在 IB 中,当我调整父视图的大小时,如何让子视图保持与父视图相同的大小?【英文标题】:in IB how do I get a subview to stay at the same size as it's parent when I resize the parent? 【发布时间】:2011-06-30 04:18:05 【问题描述】:

在 Interface Builder 中,我有一个父视图和一个子视图。

我想拥有它,这样当我在 IB 中工作时,如果我移动/更改父视图的位置,子视图也会随之移动,因此它继续保持相同的大小和形状。

有没有办法做到这一点?

请注意,我说的是在设计模式下使用 IB(即,我不是在谈论程序运行后以及能够通过代码更改位置等的能力)

【问题讨论】:

【参考方案1】:

在 Interface Builder (IB) 中,您需要选择所有 Autoresize 行。请参阅下面屏幕截图中的圆圈。

【讨论】:

但这似乎在设计模式下不起作用?即我正在追求一些东西,它会立即(在 IB 中)自动调整它的大小以保持它与父级相同的大小。我确实注意到“排列”下拉列表和“垂直填充容器”和水平的选择可以正常工作,但只有一次。我实际上是在这之后,但每次我更改父级的大小时都会自动发生。【参考方案2】:

查看AutoResizingMask

【讨论】:

+1 使用 UIViewAutoresizingFlexibleWidthUIViewAutoresizingFlexibleHeight 但这似乎在设计模式下不起作用?即我正在追求一些东西,它会立即(在 IB 中)自动调整它的大小以保持它与父级相同的大小。我确实注意到“排列”下拉列表和“垂直填充容器”和水平的选择可以正常工作,但只有一次。我实际上是在这之后,但每次我更改父级的大小时都会自动发生。 您需要使用 AutoResizingMasks。您也可以在代码中执行此操作。 它必须在设计和运行模式下都能工作。您还应该检查您的父视图。它应该是工作。你到底有什么可以在这里张贴图片?你用的是什么控件。 在 IB 中,我有 (a) 顶视图 - UIView,然后是 (b) 父视图 - UIView,然后是一些子视图,其中包括 (c) 自定义视图,即 UIImageView 与模式 aspectfit。请注意,我已将这些视图布置好,因此它们彼此内部并在它们周围留有一点空间(即它们的大小并不接近正确的大小)。当我单击自动调整大小的行时,UIImageView 根本不会调整大小。

以上是关于在 IB 中,当我调整父视图的大小时,如何让子视图保持与父视图相同的大小?的主要内容,如果未能解决你的问题,请参考以下文章

WatchOS SwiftUI 动画视图调整父级大小

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

iOS Autolayout:调整大小父视图中的 UILabels 问题

如何使用自动调整大小和自动布局并更改其默认行为? [关闭]

如何使用自动布局根据子视图调整父视图的高度

iOS 无法在设备旋转时自动调整子视图大小